comma-style
强制执行一致的逗号风格
🔧 可修复
此规则报告的一些问题可以通过 --fix
命令行 选项自动修复。
此规则在 ESLint v8.53.0 中已 **弃用**。请在 @stylistic/eslint-plugin-js
中使用 对应的规则。
逗号风格规则强制执行逗号分隔列表的样式。JavaScript 中主要使用两种逗号样式
- 标准样式,其中逗号放置在当前行的末尾
- 逗号优先样式,其中逗号放置在下一行的开头
使用逗号优先样式的理由之一是它可以帮助跟踪丢失和尾随逗号。这些是有问题的,因为变量声明中缺少逗号会导致全局变量泄漏,而尾随逗号会导致旧版 IE 中出现错误。
规则详细信息
此规则强制在数组文字、对象文字和变量声明中使用一致的逗号样式。
此规则不适用于以下任何一种情况
- 逗号前面和后面都有换行符(孤零零的逗号)
- 单行数组文字、对象文字和变量声明
选项
此规则有一个字符串选项
"last"
(默认)要求在数组元素、对象属性或变量声明之后并在同一行上使用逗号"first"
要求在数组元素、对象属性或变量声明之前并在同一行上使用逗号
此规则还接受一个额外的 exceptions
对象
-
"exceptions"
具有属性,其名称对应于 JavaScript 代码的抽象语法树 (AST) 中的节点类型"ArrayExpression": true
忽略数组文字中的逗号样式"ArrayPattern": true
忽略解构中的数组模式的逗号样式"ArrowFunctionExpression": true
忽略箭头函数表达式的参数中的逗号样式"CallExpression": true
忽略函数调用的参数中的逗号样式"FunctionDeclaration": true
忽略函数声明的参数中的逗号样式"FunctionExpression": true
忽略函数表达式的参数中的逗号样式"ImportDeclaration": true
忽略导入声明的说明符中的逗号样式"ObjectExpression": true
忽略对象文字中的逗号样式"ObjectPattern": true
忽略解构中的对象模式的逗号样式"VariableDeclaration": true
忽略变量声明中的逗号样式"NewExpression": true
忽略构造函数表达式参数中的逗号样式
确定由 ESTree 定义的节点类型的一种方法是使用 AST Explorer 和 espree 解析器。
last
使用默认 "last"
选项时,此规则的错误代码示例
在游乐场中打开
/*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"
选项时,此规则的正确代码示例
在游乐场中打开
/*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"
选项时,此规则的错误代码示例
在游乐场中打开
/*eslint comma-style: ["error", "first"]*/
var foo = 1
bar = 2;
var foo = ["apples"
"oranges"];
function baz() {
return {
"a": 1
"b:": 2
};
}
使用 "first"
选项时,此规则的正确代码示例
在游乐场中打开
/*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": { … } }
选项时,此规则的错误代码示例
在游乐场中打开
/*eslint comma-style: ["error", "first", { "exceptions": { "ArrayExpression": true, "ObjectExpression": true } }]*/
var o = {}
a = [];
使用示例 "first", { "exceptions": { … } }
选项时,此规则的正确代码示例
在游乐场中打开
/*eslint comma-style: ["error", "first", { "exceptions": { "ArrayExpression": true, "ObjectExpression": true } }]*/
var o = {fst:1,
snd: [1,
2]}
, a = [];
何时不使用它
如果您的项目不关心强制执行一致的逗号样式,则可以安全地关闭此规则。
相关规则
版本
此规则是在 ESLint v0.9.0 中引入的。