Versions

no-empty

Disallow empty block statements

Recommended

The "extends": "eslint:recommended" property in a configuration file enables this rule

💡 hasSuggestions

Some problems reported by this rule are manually fixable by editor suggestions

虽然在技术上空块语句并不是错误,但通常是由于没有完成的重构而发生。它们会在阅读代码时会引起混乱。

规则细节

使用此规则禁用空块语句。此规则忽略了包含注释的块语句(例如在 try 语句中空的 catchfinally 块,表示无论有无错误都应继续执行)。

使用此规则的错误示例:

Open in Playground
/*eslint no-empty: "error"*/

if (foo) {
}

while (foo) {
}

switch(foo) {
}

try {
    doSomething();
} catch(ex) {

} finally {

}

使用此规则的正确示例:

Open in Playground
/*eslint no-empty: "error"*/

if (foo) {
    // empty
}

while (foo) {
    /* empty */
}

try {
    doSomething();
} catch (ex) {
    // continue regardless of error
}

try {
    doSomething();
} finally {
    /* continue regardless of error */
}

选项

这条规则有一个用于处理例外情况的对象选项:

  • "allowEmptyCatch": true 允许空的 catch 子句(即不包含注释)。

allowEmptyCatch

是呀此规则与 { "allowEmptyCatch": true } 选项的额外正确示例:

Open in Playground
/* eslint no-empty: ["error", { "allowEmptyCatch": true }] */
try {
    doSomething();
} catch (ex) {}

try {
    doSomething();
}
catch (ex) {}
finally {
    /* continue regardless of error */
}

何时不用

如果你故意使用空块语句,那么你可以禁用这一规则。

Version

This rule was introduced in ESLint v0.0.2.

Resources

更改语言