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.
Примеры неправильного кода для этого правила:
/*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