space-before-keywords
关键字之前的空格:在关键字之前强制执行一致的空格
此规则在ESLint v2.0中已删除
,并由关键字间距规则取代
。
在--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"
。
此规则将允许关键字前面加上大括号({
)。如果您想改变这种行为,请考虑使用块间距规则。
此规则的默认代码错误
代码示例"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) {}
何时不使用
如果您不希望强化关键字间隔的一致性。
相关规则
- space-after-keywords
- block-spacing
- space-return-throw-case
- space-unary-ops
- space-infix-ops
版本
此规则在ESLint 1.4.0中引入,并在2.0.0-beta.3中删除。