no-duplicate-case
禁止重复的 case 标签
✅ 推荐
在 配置文件 中使用 @eslint/js
的 recommended
配置启用此规则
如果 switch
语句的 case
子句中存在重复的测试表达式,则很可能是程序员复制了一个 case
子句但忘记更改测试表达式。
规则详情
此规则禁止 switch
语句的 case
子句中出现重复的测试表达式。
此规则的 错误 代码示例
在 Playground 中打开
/*eslint no-duplicate-case: "error"*/
const a = 1,
one = 1;
switch (a) {
case 1:
break;
case 2:
break;
default:
break;
}
switch (a) {
case one:
break;
case 2:
break;
default:
break;
}
switch (a) {
case "1":
break;
case "2":
break;
default:
break;
}
此规则的 正确 代码示例
在 Playground 中打开
/*eslint no-duplicate-case: "error"*/
const a = 1,
one = 1;
switch (a) {
case 1:
break;
case 2:
break;
case 3:
break;
default:
break;
}
switch (a) {
case one:
break;
case 2:
break;
case 3:
break;
default:
break;
}
switch (a) {
case "1":
break;
case "2":
break;
case "3":
break;
default:
break;
}
何时不使用
在极少数情况下,case
子句中相同的测试表达式产生不同的值(这必然意味着这些表达式正在导致和依赖副作用),您将不得不禁用此规则。
switch (a) {
case i++:
foo();
break;
case i++: // eslint-disable-line no-duplicate-case
bar();
break;
}
版本
此规则在 ESLint v0.17.0 中引入。