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