Versions

no-extra-label

Disallow unnecessary labels

🔧 Fixable

Some problems reported by this rule are automatically fixable by the --fix command line option

如果一个循环不包含嵌套的循环或开关,那么就没有必要给这个循环贴标签。

A: while (a) {
    break A;
}

你可以通过删除标签并使用没有标签的 breakcontinue 来达到同样的效果。 可能这些标签会让开发者感到困惑,因为他们希望标签能跳到更远的地方。

规则细节

这一规则旨在消除不必要的标签。

使用此规则的错误示例:

Open in Playground
/*eslint no-extra-label: "error"*/

A: while (a) {
    break A;
}

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

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

使用此规则的正确示例:

Open in Playground
/*eslint no-extra-label: "error"*/

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;
}

何时不用

如果你不希望被通知标签的使用情况,你可以安全地禁用此规则。

Version

This rule was introduced in ESLint v2.0.0-rc.0.

Resources

更改语言