Spec-Zone.ru › ESLint

default-case-last

Требует, чтобы предложения default в операторах switch были последними

Оператор switch может содержать необязательное предложение default.

Если оно присутствует, обычно оно является последним предложением, но это не обязательно. Также допускается размещать предложение default перед всеми предложениями case или между ними. Поведение в основном такое же, как если бы оно было последним предложением. Блок default будет по-прежнему выполняться, только если ни одно из предложений case не совпало (включая предложения, определённые после default), однако также возможен переход к следующему предложению в списке из предложения default. Тем не менее такой порядок выполнения встречается нечасто и может сбивать читателей с толку.

Даже если логика перехода к следующему предложению отсутствует, всё равно неожиданно видеть предложение default перед предложениями case или между ними. По соглашению, оно должно быть последним.

Если оператор switch должен содержать предложение default, рекомендуется размещать его последним.

Описание правила

Это правило требует, чтобы предложения default в операторах switch были последними.

Оно применяется только к операторам switch, в которых уже есть предложение default.

Это правило не требует наличия предложений default. См. правило default-case, если вы также хотите требовать наличия предложений default в операторах switch.

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

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

switch (foo) {
    default:bar();break;
    case "a":
        baz();
        break;
}

switch (foo) {
    case 1:
        bar();
        break;
    default:baz();break;
    case 2:
        quux();
        break;
}

switch (foo) {
    case "x":
        bar();
        break;
    default:
    case "y":
        baz();
        break;
}

switch (foo) {
    default:break;
    case -1:
        bar();
        break;
}

switch (foo) {
  default:doSomethingIfNotZero();
  case 0:
    doSomethingAnyway();
}

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

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

switch (foo) {
    case "a":
        baz();
        break;
    default:
        bar();
        break;
}

switch (foo) {
    case 1:
        bar();
        break;
    case 2:
        quux();
        break;
    default:
        baz();
        break;
}

switch (foo) {
    case "x":
        bar();
        break;
    case "y":
    default:
        baz();
        break;
}

switch (foo) {
    case -1:
        bar();
        break;
}

if (foo !== 0) {
    doSomethingIfNotZero();
}
doSomethingAnyway();

Параметры

У этого правила нет параметров.

Связанные правила

  • default-case

Версия

Это правило появилось в ESLint v7.0.0-alpha.0.

Дополнительная информация

switch — JavaScript | MDN
developer.mozilla.org

Ресурсы

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

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/default-case-last

Spec-Zone.ru

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