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
Примеры неправильного кода для этого правила:
/*eslint default-case: "error"*/
Примеры правильного кода для этого правила:
/*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" }:
/*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, вы можете безопасно отключить это правило.
Связанные правила
Версия
Это правило было введено в ESLint v0.6.0.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/default-case