Eslint
规则 | Rules

space-before-keywords

关键字之前的空格:在关键字之前强制执行一致的空格

此规则在ESLint v2.0中已删除,并由关键字间距规则取代

--fix命令行上选择自动修复此规则报告的问题。

关键字是JavaScript的语法元素,例如functionif。这些标识符对语言有特殊意义,因此在代码编辑器中经常以不同的颜色显示。作为语言的重要组成部分,风格指南通常指的是围绕关键词使用的空格。例如,您可能有一个样式指南,指出关键字应始终以空格开头,这意味着if-else语句必须如下所示:

if (foo) { // ... } else { // ... }

当然,你也可以有一个风格指南,禁止关键字之前的空格。

规则细节

此规则将强制间隔的一致性的关键字之前ifelseforwhiledoswitchthrowtrycatchfinallywithbreakcontinuereturnfunctionyieldclass和变量声明(letconstvar)和标签语句。

这条规则有一个参数:"always""never"。如果"always"那么关键字必须至少有一个空格。如果"never"在关键字之前没有空格elsewhile(do ... whilefinallycatch。默认值是"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中删除。

资源