版本

no-duplicate-case

禁止重复的 case 标签

推荐

配置文件 中使用来自 @eslint/jsrecommended 配置启用此规则

如果 switch 语句在 case 子句中具有重复的测试表达式,则很可能是程序员复制了一个 case 子句,但忘记更改测试表达式。

规则详细信息

此规则禁止 switch 语句的 case 子句中出现重复的测试表达式。

此规则的错误代码示例

在游乐场中打开
/*eslint no-duplicate-case: "error"*/

var a = 1,
    one = 1;

switch (a) {
    case 1:
        break;
    case 2:
        break;
    case 1:         // duplicate test expression
        break;
    default:
        break;
}

switch (a) {
    case one:
        break;
    case 2:
        break;
    case one:         // duplicate test expression
        break;
    default:
        break;
}

switch (a) {
    case "1":
        break;
    case "2":
        break;
    case "1":         // duplicate test expression
        break;
    default:
        break;
}

此规则的正确代码示例

在游乐场中打开
/*eslint no-duplicate-case: "error"*/

var 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 中引入的。

资源

更改语言