版本

comma-spacing

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

🔧 可修正

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

重要事項

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

瞭解更多

逗號周圍的間距可以提高項目列表的可讀性。儘管大多數語言的樣式指南都規定在逗號後添加空格,而不是在逗號前添加空格,但這取決於專案的偏好。

var foo = 1, bar = 2;
var foo = 1 ,bar = 2;

規則詳情

此規則強制在變數宣告、陣列字面值、物件字面值、函式參數和序列中,逗號前後保持一致的間距。

在以下任一情況下,此規則不適用

選項

此規則有一個物件選項

  • "before": false (預設) 不允許逗號前有空格
  • "before": true 要求逗號前有一個或多個空格
  • "after": true (預設) 要求逗號後有一個或多個空格
  • "after": false 不允許逗號後有空格

after

以下是使用預設選項 { "before": false, "after": true } 時,不正確程式碼的範例

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

var foo = 1 ,bar = 2;
var arr = [1 , 2];
var obj = {"foo": "bar" ,"baz": "qur"};
foo(a ,b);
new Foo(a ,b);
function baz(a ,b){}
a ,b

以下是使用預設選項 { "before": false, "after": true } 時,正確程式碼的範例

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

var foo = 1, bar = 2
    , baz = 3;
var arr = [1, 2];
var arr = [1,, 3]
var obj = {"foo": "bar", "baz": "qur"};
foo(a, b);
new Foo(a, b);
function qur(a, b){}
a, b

以下是使用預設選項 { "before": false, "after": true } 時,正確程式碼的其他範例

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

// this rule does not enforce spacing between two commas
var arr = [
    ,,
    , ,
];

// this rule does not enforce spacing after `[` and before `]`
var arr = [,];
var arr = [ , ];
var arr = [a, b,];
[,] = arr;
[ , ] = arr;
[a, b,] = arr;

// this rule does not enforce spacing before `}`
var obj = {x, y,};
var {z, q,} = obj;
import {foo, bar,} from "mod";

// this rule does not enforce spacing before `)`
foo(a, b,)

before

以下是使用選項 { "before": true, "after": false } 時,不正確程式碼的範例

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

var foo = 1, bar = 2;
var arr = [1 , 2];
var obj = {"foo": "bar", "baz": "qur"};
new Foo(a,b);
function baz(a,b){}
a, b

以下是使用選項 { "before": true, "after": false } 時,正確程式碼的範例

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

var foo = 1 ,bar = 2 ,
    baz = true;
var arr = [1 ,2];
var arr = [1 ,,3]
var obj = {"foo": "bar" ,"baz": "qur"};
foo(a ,b);
new Foo(a ,b);
function qur(a ,b){}
a ,b

何時不該使用

如果您的專案不遵循一致的逗號間距模式,請關閉此規則。

版本

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

延伸閱讀

資源

變更語言