版本

space-before-keywords

強制關鍵字前的一致間距。

(可修正) 命令列上的 --fix 選項會自動修正此規則回報的問題。

關鍵字是 JavaScript 的語法元素,例如 functionif。這些識別字對語言具有特殊意義,因此在程式碼編輯器中通常以不同的顏色顯示。作為語言的重要組成部分,樣式指南通常會提及關鍵字周圍應使用的間距。例如,您的樣式指南可能會說關鍵字前面應始終有空格,這表示 if-else 陳述式必須看起來像這樣

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

當然,您的樣式指南也可能不允許關鍵字前有空格。

規則詳情

此規則將強制關鍵字 ifelseforwhiledoswitchthrowtrycatchfinallywithbreakcontinuereturnfunctionyieldclass 和變數宣告 (letconstvar) 以及標籤陳述式之前間距的一致性。

此規則採用一個引數:"always""never"。如果 "always",則關鍵字前面必須至少有一個空格。如果 "never",則關鍵字 elsewhile (do…while)、finallycatch 前面將不允許有空格。預設值為 "always"

此規則將允許關鍵字前面是左大括號 ({)。如果您希望更改此行為,請考慮使用 block-spacing 規則。

使用預設 "always" 選項時,不正確 程式碼範例

/*eslint space-before-keywords: ["error", "always"]*/

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

const foo = 'bar';let baz = 'qux';

var qux =function bar () {}

function bar() {
    if (foo) {return; }
}

使用預設 "always" 選項時,正確 程式碼範例

/*eslint space-before-keywords: ["error", "always"]*/

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) {}

何時不應使用

如果您不希望強制關鍵字間距的一致性。

版本

此規則在 ESLint v1.4.0 中引入,並在 v2.0.0-beta.3 中移除。

變更語言