跳至内容

eslint/default-case-last 样式

其作用

强制在 switch 语句中将默认子句放在最后

为何该模式不好?

switch 语句可以选择带有默认子句。如果存在默认子句,它通常是最后一个子句,但它不是必须的。它还可以放在所有 case 子句之前或任意位置。其行为与作为最后一个子句时基本相同。只有在 case 子句(包括在默认子句之后定义的子句)中没有匹配时,才会执行默认代码块,但也可以从默认子句“向下执行”至列表中的后续子句。然而,这种流程并不常见,对于阅读者来说可能会引起困惑。即使没有“向下执行”逻辑,在 case 子句之前或其间看到默认子句仍然令人意外。根据惯例,它应该作为最后一个子句。如果 switch 语句应该有一个默认子句,将它定义为最后一个子句被认为是一种最佳实践。

示例

javascript
switch (foo) {
  default:
    bar();
    break;
  case "a":
    baz();
    break;
}

switch (foo) {
  case 1:
    bar();
    break;
  default:
    baz();
    break;
  case 2:
    qux();
    break;
}

引用

在 MIT 许可证下发布。