space-before-keywords
强制要求关键字前的空格保持一致。
(已移除)此规则在 ESLint v2.0 中移除并被 keyword-spacing 所取代。
(可修复)--fix 选项在命令行上自动修复该规则报告的问题。
关键字是 JavaScript 的语法元素,如 function 和 if。这些标识符对语言有特殊的意义,所以在代码编辑器中经常以不同的颜色出现。作为语言的一个重要部分,风格指南经常提到关键字周围应该使用的空格。例如,你可能有一个风格指南,说关键字前面应该总是有空格,这意味着 if-else 语句必须看起来像这样。
if (foo) {
// ...
} else {
// ...
}
当然,你也可以有一个风格指南,不允许在关键字前有空格。
规则细节
这条规则将强制执行关键字前的间距的一致性。
if、else、for、while、do、switch、throw、try、catch、finally、with、break、continue、return、function、yield、class、变量声明(let、const、var)和标签语句。
这个规则需要一个参数:"always" 或 "never"。如果是 "always",那么关键字前面必须至少有一个空格。如果 "never",那么在关键字 else、while(do…while)、finally 和 catch 前不允许有空格。默认值是 "always"。
这个规则允许关键字前面有一个大括号({)。如果你想改变
这个行为,请考虑使用 block-spacing 规则。
使用此规则与默认的 "always" 选项的错误示例:
/*eslint space-before-keywords: ["error", "always"]*/
/*eslint-env es6*/
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"]*/
/*eslint-env es6*/
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) {}
何时不用
如果你不希望在关键字的空格上保持一致。
Related Rules
Version
This rule was introduced in ESLint v1.4.0 and removed in v2.0.0-beta.3.