no-duplicate-case
Запретить дублирование меток case
Использование конфигурации recommended из @eslint/js в файле конфигурации включает это правило
Если оператор switch имеет дублирующие тестовые выражения в case разделах, это, вероятно, означает, что программист скопировал case раздел, но забыл изменить тестовое выражение.
Подробное описание правила
Это правило запрещает дублирование тестовых выражений в case разделах операторов switch.
Примеры неправильного кода для этого правила:
/*eslint no-duplicate-case: "error"*/
var 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;
}
Примеры правильного кода для этого правила:
/*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.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-duplicate-case