default-case-последний
Выполнение условий по умолчанию в операторах switch в конце
Оператор switch может необязательно содержать default условие.
Если оно присутствует, то, как правило, располагается в конце, но это необязательно. Разрешается разместить default условие до всех case условий или где-либо между ними. Поведение в основном такое же, как если бы оно было последним. Блок default будет выполняться только в том случае, если нет соответствия case условиям (включая те, которые определены после default), но также есть возможность «провалиться» от default условия к следующему условию в списке. Однако такой порядок выполнения не является распространённым и может сбить с толку читателя.
Даже если нет логики «проваливания», всё равно неожиданно видеть default условие до или между case условиями. По соглашению, оно должно быть последним.
Если оператор switch должен иметь default условие, рекомендуется определять его как последнее условие.
Подробное описание правила
Это правило требует, чтобы default условия в операторах switch располагались в конце.
Применяется только к switch операторам, которые уже имеют default условие.
Это правило не требует наличия default условий. Обратитесь к default-case, если вы также хотите потребовать наличия default условий в switch операторах.
Примеры неправильного кода для этого правила:
/*eslint default-case-last: "error"*/
switch (foo) {
case "a":
baz();
break;
}
switch (foo) {
case 1:
bar();
break;
case 2:
quux();
break;
}
switch (foo) {
case "x":
bar();
break;
case "y":
baz();
break;
}
switch (foo) {
case -1:
bar();
break;
}
switch (foo) {
case 0:
doSomethingAnyway();
}
Примеры правильного кода для этого правила:
/*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();
Связанные правила
Версия
Это правило было добавлено в ESLint v7.0.0-alpha.0.
Дополнительные материалы
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/default-case-last