Spec-Zone.ru › ESLint

no-duplicate-case

Запрещает повторяющиеся метки case

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

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

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

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

Это правило запрещает повторяющиеся проверочные выражения в предложениях case инструкций switch.

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

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

const 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"*/

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.

Ресурсы

  • Исходный код правила
  • Исходный код тестов

© 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