default-case
在 switch
语句中要求 default
代码块
一些代码约定要求所有 switch
语句都具有 default
代码块,即使 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
}
同样,这里的目的是表明开发人员有意不设置默认行为。
规则详情
此规则旨在要求在 switch
语句中使用 default
代码块。如果不存在 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
}
何时不使用它
如果您不想对 switch
语句强制执行 default
代码块,则可以安全地禁用此规则。
相关规则
版本
此规则是在 ESLint v0.6.0 中引入的。