-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Open
Labels
awaiting responseIssues waiting for a reply from the OP or another partyIssues waiting for a reply from the OP or another partyenhancement: plugin rule optionNew rule option for an existing eslint-plugin ruleNew rule option for an existing eslint-plugin rulepackage: eslint-pluginIssues related to @typescript-eslint/eslint-pluginIssues related to @typescript-eslint/eslint-plugin
Description
Before You File a Proposal Please Confirm You Have Done The Following...
- I have searched for related issues and found none that match my proposal.
- I have searched the current rule list and found no rules that match my proposal.
- I have read the FAQ and my problem is not listed.
My proposal is suitable for this project
- I believe my proposal would be useful to the broader TypeScript community (meaning it is not a niche proposal).
Link to the rule's documentation
https://typescript-eslint.io/rules/switch-exhaustiveness-check/
Description
option: disableSwitchForNonUnion: boolean
I think it makes sense to add an option to disable switch for "infinite" types:
const value: number = Math.floor(Math.random() * 3);
switch (value) {
case 0:
break;
case 1:
break;
}Because if they exist, it's a reason to review this piece of code or explicitly flag it by disabling the rule in a comment, to highlight that an "infinite" type check is in (// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check)
Fail
const value: number = Math.floor(Math.random() * 3);
switch (value) {
case 0:
break;
case 1:
break;
}Pass
const value: number = Math.floor(Math.random() * 3);
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
switch (value) {
case 0:
break;
case 1:
break;
}or
const value = Math.floor(Math.random() * 3) as 0 | 1 | 2;
switch (value) {
case 0:
break;
case 1:
break;
case 2:
break;
}Additional Info
No response
Metadata
Metadata
Assignees
Labels
awaiting responseIssues waiting for a reply from the OP or another partyIssues waiting for a reply from the OP or another partyenhancement: plugin rule optionNew rule option for an existing eslint-plugin ruleNew rule option for an existing eslint-plugin rulepackage: eslint-pluginIssues related to @typescript-eslint/eslint-pluginIssues related to @typescript-eslint/eslint-plugin