Spec-Zone.ru › ESLint

no-duplicate-case

Запретить дублирование меток case

✅ Рекомендуется

Использование конфигурации recommended из @eslint/js в файле конфигурации включает это правило

Если оператор switch имеет дублирующие тестовые выражения в case разделах, это, вероятно, означает, что программист скопировал case раздел, но забыл изменить тестовое выражение.

Подробное описание правила

Это правило запрещает дублирование тестовых выражений в case разделах операторов switch.

Примеры неправильного кода для этого правила:

Открыть в Playground
/*eslint no-duplicate-case: "error"*/

var a = 1,
    one = 1;

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

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

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

Примеры правильного кода для этого правила:

Открыть в Playground
/*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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API