space-before-keywords
强制关键字前空格的一致性。
(可修复) 命令行 上的 --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"
选项时,此规则的 错误 代码示例
if (foo) {
// ...
}else {}
const foo = 'bar';let baz = 'qux';
var qux =function bar () {}
function bar() {
if (foo) {return; }
}
使用默认 "always"
选项时,此规则的 正确 代码示例
if (foo) {
// ...
} else {}
(function() {})();
<Foo onClick={function bar() {}} />
for (let foo of ['bar', 'baz', 'qux']) {}
使用 "never"
选项时,此规则的 错误 代码示例
if (foo) {
// ...
} else {}
do {
}
while (foo)
try {} finally {}
try {} catch(e) {}
使用 "never"
选项时,此规则的 正确 代码示例
if (foo) {
// ...
}else {}
do {}while (foo)
try {}finally {}
try{}catch(e) {}
何时不使用它
如果您不希望强制关键字空格的一致性。
相关规则
版本
此规则在 ESLint v1.4.0 中引入,并在 v2.0.0-beta.3 中移除。