Spec-Zone.ru › ESLint

default-case

Требовать default в операторах switch

Некоторые соглашения по кодированию требуют, чтобы все операторы switch имели случай default, даже если случай по умолчанию пустой, например:

switch (foo) {
    case 1:
        doSomething();
        break;

    case 2:
        doSomething();
        break;

    default:
    // do nothing
}

Идея заключается в том, что лучше всегда явно указывать, каким должно быть поведение по умолчанию, чтобы было ясно, забыл ли разработчик добавить поведение по умолчанию случайно.

Другие соглашения по кодированию позволяют пропустить случай default при условии, что имеется комментарий, указывающий на то, что пропуск намеренный, например:

switch (foo) {
    case 1:
        doSomething();
        break;

    case 2:
        doSomething();
        break;

    // no default
}

Ещё раз, цель здесь — показать, что разработчик намеревался, чтобы поведения по умолчанию не было.

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

Это правило призвано требовать default в операторах switch. Вы можете необязательно добавить // no default после последнего case, если нет случая default. Комментарий может быть в любом желаемом регистре, например // No Default

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

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

switch(a){case1:/* code */break;}

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

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

switch (a) {
    case 1:
        /* code */
        break;

    default:
        /* code */
        break;
}

switch (a) {
    case 1:
        /* code */
        break;

    // no default
}

switch (a) {
    case 1:
        /* code */
        break;

    // No Default
}

Параметры

Это правило принимает один аргумент параметров:

  • Установите параметр commentPattern со строкой регулярного выражения, чтобы изменить шаблон проверки комментария по умолчанию /^no default$/i

commentPattern

Примеры правильного кода для параметра { "commentPattern": "^skip\\sdefault" }:

Открыть в Playground
/*eslint default-case: ["error", { "commentPattern": "^skip\\sdefault" }]*/

switch(a) {
    case 1:
        /* code */
        break;

    // skip default
}

switch(a) {
    case 1:
        /* code */
        break;

    // skip default case
}

Когда не следует использовать

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

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

  • no-fallthrough

Версия

Это правило было введено в ESLint v0.6.0.

Ресурсы

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

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

Spec-Zone.ru

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