版本

semi-spacing

強制在分號前後保持一致的間距

🔧 可修正

此規則報告的某些問題可以透過 --fix 命令列 選項自動修正

重要

此規則已在 ESLint v8.53.0 中棄用。請使用 @stylistic/eslint-plugin-js 中的對應規則

了解更多

JavaScript 允許您在分號前後放置不必要的空格。

禁止或強制分號周圍的空格可以提高程式碼的可讀性。

var a = "b" ;

var c = "d";var e = "f";

規則詳情

此規則旨在強制分號周圍的間距。此規則防止在表達式中的分號前使用空格。

此規則不檢查以下情況的間距

  • 如果分號是行中的第一個 token,則分號後的間距。

  • 如果分號在左括號 (({) 之後,則分號前的間距,或者如果分號在右括號 ()}) 之前,則分號後的間距。該間距由 space-in-parensblock-spacing 檢查。

  • 在具有空條件的 for 迴圈 (for(;;)) 中分號周圍的間距。

選項

該規則採用一個選項,即一個物件,它有兩個鍵 beforeafter,它們具有布林值 truefalse。如果 beforetrue,則強制分號前有空格,如果為 false,則不允許分號前有空格。如果 aftertrue,則強制分號後有空格,如果為 false,則不允許分號後有空格。只有當分號不在行尾時,才會套用 after 選項。

預設值為 {"before": false, "after": true}

    "semi-spacing": ["error", {"before": false, "after": true}]

{"before": false, "after": true}

這是預設選項。它強制分號後有空格,並禁止分號前有空格。

此規則的錯誤程式碼範例

在 Playground 中開啟
/*eslint semi-spacing: "error"*/

var foo ;
var foo;var bar;
throw new Error("error") ;
while (a) { break ; }
for (i = 0 ; i < 10 ; i++) {}
for (i = 0;i < 10;i++) {}

此規則的正確程式碼範例

在 Playground 中開啟
/*eslint semi-spacing: "error"*/

var foo;
var foo; var bar;
throw new Error("error");
while (a) { break; }
for (i = 0; i < 10; i++) {}
for (;;) {}
if (true) {;}
;foo();

{"before": true, "after": false}

此選項強制分號前有空格,並禁止分號後有空格。

使用 {"before": true, "after": false} 選項時,此規則的錯誤程式碼範例

在 Playground 中開啟
/*eslint semi-spacing: ["error", { "before": true, "after": false }]*/

var foo;
var foo ; var bar;
throw new Error("error");
while (a) { break; }
for (i = 0;i < 10;i++) {}
for (i = 0; i < 10; i++) {}

使用 {"before": true, "after": false} 選項時,此規則的正確程式碼範例

在 Playground 中開啟
/*eslint semi-spacing: ["error", { "before": true, "after": false }]*/

var foo ;
var foo ;var bar ;
throw new Error("error") ;
while (a) {break ;}
for (i = 0 ;i < 10 ;i++) {}

何時不該使用

如果您不關心分號前或後間距的一致性,則可以關閉此規則。

版本

此規則在 ESLint v0.16.0 中引入。

資源

變更語言