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