# 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 foo =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) {}
# 何时不使用
如果您不希望强制关键字间距的一致性。