Skip to content
← Back to rules

eslint/no-extra-label 风格

An auto-fix is available for this rule.

它做了什么

禁止不必要的标签。

为什么这是个问题?

如果一个循环内部没有嵌套的循环或 switch 语句,那么为该循环添加标签是多余的。

js
A: while (a) {
  break A;
}

通过移除标签并直接使用 breakcontinue 而不带标签,可以达到相同的效果。
这些标签可能会让开发者感到困惑,因为他们通常期望标签能跳转到更远的位置。

示例

此规则的错误代码示例:

js
A: while (a) {
  break A;
}

B: for (let i = 0; i < 10; ++i) {
  break B;
}

C: switch (a) {
  case 0:
    break C;
}

此规则的正确代码示例:

js
while (a) {
  break;
}

for (let i = 0; i < 10; ++i) {
  break;
}

switch (a) {
  case 0:
    break;
}

A: {
  break A;
}

B: while (a) {
  while (b) {
    break B;
  }
}

C: switch (a) {
  case 0:
    while (b) {
      break C;
    }
    break;
}

如何使用

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

json
{
  "rules": {
    "no-extra-label": "error"
  }
}
bash
oxlint --deny no-extra-label

参考资料