Skip to content
← Back to rules

eslint/default-case 限制

它的作用

强制所有 switch 语句包含一个 default 分支,除非明确通过配置的注释标记。

为什么这是个问题?

如果没有 default 分支,就无法判断省略是故意为之还是疏忽。添加 default 分支或特殊注释可以让代码意图更明确,减少错误。

如果不需要 default 分支,你也可以在最后一个 case 后添加 // no default。该注释可以使用任意大小写,例如 // No Default

示例配置:

json
{
  "default-case": ["error", { "commentPattern": "^skip\\sdefault" }]
}

示例

此规则的 错误 代码示例:

js
switch (foo) {
  case 1:
    break;
}

此规则的 正确 代码示例:

js
switch (a) {
  case 1:
    break;
  default:
    break;
}

switch (a) {
  case 1:
    break;
  // no default
}

配置

此规则接受一个配置对象,包含以下属性:

commentPattern

type: string

用于检测标记 default 分支不存在为有意为之的正则表达式模式。

默认值:no default

使用 { "commentPattern": "^skip\\sdefault" } 选项时,此规则的 错误 代码示例:

js
switch (a) {
  case 1:
    break;
  // no default
}

使用 { "commentPattern": "^skip\\sdefault" } 选项时,此规则的 正确 代码示例:

js
switch (a) {
  case 1:
    break;
  // skip default
}

如何使用

要通过配置文件或 CLI 启用 此规则,可以使用:

json
{
  "rules": {
    "default-case": "error"
  }
}
bash
oxlint --deny default-case

参考资料