
comma-style
強制執行一致的逗號風格
🔧 可修正
此規則回報的某些問題可以透過 --fix
命令列 選項自動修正
Comma Style 規則強制執行逗號分隔列表的風格。JavaScript 中主要使用兩種逗號風格
- 標準風格,逗號放在目前行的末尾
- Comma First 風格,逗號放在下一行的開頭
使用 Comma First 風格的理由之一是它可以幫助追蹤遺失和尾隨逗號。這些是有問題的,因為變數宣告中遺失逗號可能導致全域變數洩漏,而尾隨逗號可能導致舊版 IE 中發生錯誤。
規則詳情
此規則強制陣列字面值、物件字面值和變數宣告中逗號風格的一致性。
此規則在以下任一情況下皆不適用
- 逗號前面和後面都有換行符號(單獨逗號)
- 單行陣列字面值、物件字面值和變數宣告
選項
此規則有一個字串選項
"last"
(預設)要求逗號位於陣列元素、物件屬性或變數宣告之後,且在同一行"first"
要求逗號位於陣列元素、物件屬性或變數宣告之前,且在同一行
此規則也接受額外的 exceptions
物件
-
"exceptions"
具有屬性,其名稱對應於 JavaScript 程式碼抽象語法樹 (AST) 中的節點類型"ArrayExpression": true
忽略陣列字面值中的逗號風格"ArrayPattern": true
忽略解構的陣列模式中的逗號風格"ArrowFunctionExpression": true
忽略箭頭函數表達式的參數中的逗號風格"CallExpression": true
忽略函數呼叫的引數中的逗號風格"FunctionDeclaration": true
忽略函數宣告的參數中的逗號風格"FunctionExpression": true
忽略函數表達式的參數中的逗號風格"ImportDeclaration": true
忽略 import 宣告的 specifier 中的逗號風格"ObjectExpression": true
忽略物件字面值中的逗號風格"ObjectPattern": true
忽略解構的物件模式中的逗號風格"VariableDeclaration": true
忽略變數宣告中的逗號風格"NewExpression": true
忽略建構子表達式的參數中的逗號風格
判斷由 ESTree 定義的節點類型的方法是使用 AST Explorer 和 espree 解析器。
last
使用預設 "last"
選項時,不正確 程式碼範例
在 Playground 中開啟
/*eslint comma-style: ["error", "last"]*/
var foo = 1
bar = 2;
var foo = 1
bar = 2;
var foo = ["apples"
"oranges"];
function baz() {
return {
"a": 1
"b:": 2
};
}
使用預設 "last"
選項時,正確 程式碼範例
在 Playground 中開啟
/*eslint comma-style: ["error", "last"]*/
var foo = 1, bar = 2;
var foo = 1,
bar = 2;
var foo = ["apples",
"oranges"];
function baz() {
return {
"a": 1,
"b:": 2
};
}
first
使用 "first"
選項時,不正確 程式碼範例
在 Playground 中開啟
/*eslint comma-style: ["error", "first"]*/
var foo = 1
bar = 2;
var foo = ["apples"
"oranges"];
function baz() {
return {
"a": 1
"b:": 2
};
}
使用 "first"
選項時,正確 程式碼範例
在 Playground 中開啟
/*eslint comma-style: ["error", "first"]*/
var foo = 1, bar = 2;
var foo = 1
,bar = 2;
var foo = ["apples"
,"oranges"];
function baz() {
return {
"a": 1
,"b:": 2
};
}
exceptions
一個範例用例是僅在 var 陳述式中強制執行逗號風格。
使用範例 "first", { "exceptions": { … } }
選項時,不正確 程式碼範例
在 Playground 中開啟
/*eslint comma-style: ["error", "first", { "exceptions": { "ArrayExpression": true, "ObjectExpression": true } }]*/
var o = {}
a = [];
使用範例 "first", { "exceptions": { … } }
選項時,正確 程式碼範例
在 Playground 中開啟
/*eslint comma-style: ["error", "first", { "exceptions": { "ArrayExpression": true, "ObjectExpression": true } }]*/
var o = {fst:1,
snd: [1,
2]}
, a = [];
何時不該使用
如果您的專案不關心強制執行一致的逗號風格,則可以安全地關閉此規則。
相關規則
版本
此規則在 ESLint v0.9.0 中引入。
延伸閱讀
