版本

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"*/

switch (a) {
    case 1:
        /* code */
        break;
}

此规则的正确代码示例

在代码游乐场中打开
/*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 中引入的。

资源

更改语言