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. Если случай default отсутствует, после последнего case можно добавить // no 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