Update: no-void add an option to allow void as a statement #12613
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What is the purpose of this pull request?
Changes an existing rule
What rule do you want to change?
no-void
Does this change cause the rule to produce more or fewer warnings?
Fewer, when the option is turned on
How will the change be implemented? (New option, new default behavior, etc.)?
New option
Please provide some example code that this change will affect:
Code that will now be valid, when the option is turned on:
What does the rule currently do for this code?
Errors for all
void
operator usage, regardless of contextWhat will the rule do after it's changed?
When the option is on, it will allow the
void
when used as a statement.Why?
A common usage pattern I've seen out in the world is to use the
void
operator to mark promises as "consumed" without awaiting them.I.e. it's a way for users to say "I am intentionally not awaiting this promise".
This pattern works well with our rule
@typescript-eslint/no-floating-promises
, which would otherwise error on the above promise if thevoid
operator was omitted.Feel free to push back, we could potentially extend this rule within
@typescript-eslint
, and make it type aware to only allow it for thenable values, but I thought I'd see if you guys thought there was value in this before forking.