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 中移除。