-
-
Notifications
You must be signed in to change notification settings - Fork 182
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upgrade TypeScript #102
Upgrade TypeScript #102
Conversation
@@ -226,6 +223,7 @@ export default class PQueue<QueueType extends Queue<RunFunction, EnqueueOptionsT | |||
/** | |||
Adds a sync or async task to the queue. Always returns a promise. | |||
*/ | |||
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types | |||
async add<TaskResultType>(fn: Task<TaskResultType>, options: Partial<EnqueueOptionsType> = {}): Promise<TaskResultType> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's tricky to use Readonly
types here because the {}
assignment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How so? Can you elaborate? If it's not possible to use readonly here, it sounds like a the linter rule should be adjusted to ignore this case.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you type options
as
Readonly<Partial<EnqueueOptionsType>> = {}
Then this type error is returned:
Type '{}' is not assignable to type 'Readonly<Partial<EnqueueOptionsType>>'.ts(2322)
And the linter does want options
to be Readonly afaict:
source/index.ts:229:58
✖ 229:58 Parameter should be a read only type
Not an expert, but this indeed could be a linting issue I think. We shouldn't require options to be readonly in this case.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let me know what you'd prefer in this case. Happy to look into that linting thing too if it's confirmed an issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If TypeScript doesn't allow it, it's a linter bug. Can you open an issue here: https://github.com/typescript-eslint/typescript-eslint ?
@@ -226,6 +223,7 @@ export default class PQueue<QueueType extends Queue<RunFunction, EnqueueOptionsT | |||
/** | |||
Adds a sync or async task to the queue. Always returns a promise. | |||
*/ | |||
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types | |||
async add<TaskResultType>(fn: Task<TaskResultType>, options: Partial<EnqueueOptionsType> = {}): Promise<TaskResultType> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How so? Can you elaborate? If it's not possible to use readonly here, it sounds like a the linter rule should be adjusted to ignore this case.
👌 |
@sindresorhus Without the
|
I fixed that by upgrading the |
Ah, cool |
No description provided.