版本

space-before-keywords

强制关键字前空格的一致性。

(可修复) 命令行 上的 --fix 选项会自动修复由此规则报告的问题。

关键字是 JavaScript 的语法元素,例如 functionif。 这些标识符对语言具有特殊的意义,因此通常在代码编辑器中以不同的颜色显示。 作为语言的重要组成部分,风格指南通常会提及关键字周围应使用的空格。 例如,您可能有一个风格指南,指出关键字前面应该总是空格,这意味着 if-else 语句必须像这样:

if (foo) {
    // ...
} else {
    // ...
}

当然,您也可能有一个风格指南,禁止在关键字前使用空格。

规则详情

此规则将强制关键字 ifelseforwhiledoswitchthrowtrycatchfinallywithbreakcontinuereturnfunctionyieldclass 以及变量声明 (letconstvar) 和标签语句之前的空格保持一致。

此规则接受一个参数:"always""never"。 如果是 "always",则关键字前面必须至少有一个空格。 如果是 "never",则关键字 elsewhile (do…while)、finallycatch 前面不允许有空格。 默认值为 "always"

此规则允许关键字前面是左大括号 ({)。 如果您希望更改此行为,请考虑使用 block-spacing 规则。

使用默认 "always" 选项时,此规则的 错误 代码示例

/*eslint space-before-keywords: ["error", "always"]*/

if (foo) {
    // ...
}else {}

const foo = 'bar';let baz = 'qux';

var qux =function bar () {}

function bar() {
    if (foo) {return; }
}

使用默认 "always" 选项时,此规则的 正确 代码示例

/*eslint space-before-keywords: ["error", "always"]*/

if (foo) {
    // ...
} else {}

(function() {})();

<Foo onClick={function bar() {}} />

for (let foo of ['bar', 'baz', 'qux']) {}

使用 "never" 选项时,此规则的 错误 代码示例

/*eslint space-before-keywords: ["error", "never"]*/

if (foo) {
    // ...
} else {}

do {

}
while (foo)

try {} finally {}

try {} catch(e) {}

使用 "never" 选项时,此规则的 正确 代码示例

/*eslint space-before-keywords: ["error", "never"]*/

if (foo) {
    // ...
}else {}

do {}while (foo)

try {}finally {}

try{}catch(e) {}

何时不使用它

如果您不希望强制关键字空格的一致性。

版本

此规则在 ESLint v1.4.0 中引入,并在 v2.0.0-beta.3 中移除。

更改语言