comma-spacing
强制逗号间隔(逗号间距)
在--fix
命令行上的选项可以自动修复一些被这条规则反映的问题。
逗号周围的间距提高了项目列表的可读性。尽管大多数语言的样式准则规定在逗号之后添加一个空格,但不在其之前,这对项目的偏好是主观的。
var foo = 1, bar = 2;
var foo = 1 ,bar = 2;
规则细节
规则在变量声明,数组文字,对象文字,函数参数和序列中的逗号前后加上一致的间距。
这条规则不适用的ArrayExpression
或ArrayPattern
在以下任一情况:
- 相邻的空元素
- 一个初始的 null 元素,以避免与
array-bracket-spacing
规则冲突
选项
规则有一个对象选项:
"before": false
(默认)在逗号前不允许有空格
"before": true
在逗号前需要一个或多个空格
"after": true
(默认)在逗号后需要一个或多个空格
"after": false
逗号后不允许有空格
after
{ "before": false, "after": true }
规则的默认选项的代码错误
示例:
/*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 foo(a ,b){}
a ,b
具有默认选项的{ "before": false, "after": true }
规则的正确
代码示例:
/*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 foo(a, b){}
a, b
{ "before": false, "after": true }
规则的正确
代码示例,默认选项为初始 null 元素:
/*eslint comma-spacing: ["error", { "before": false, "after": true }]*/
/*eslint array-bracket-spacing: ["error", "always"]*/
var arr = [ , 2, 3 ]
before
{ "before": true, "after": false }
规则的代码错误
代码示例如下:
/*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 foo(a,b){}
a, b
{ "before": true, "after": false }
规则的正确
代码示例包含以下选项:
/*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 foo(a ,b){}
a ,b
{ "before": true, "after": false }
规则的正确
代码示例,其中包含以下选项的初始空元素:
/*eslint comma-spacing: ["error", { "before": true, "after": false }]*/
/*eslint array-bracket-spacing: ["error", "never"]*/
var arr = [,2 ,3]
何时不使用它
如果您的项目不符合一致的逗号间隔模式,请关闭此规则。
进一步阅读
相关规则
- array-bracket-spacing
- comma-style
- space-in-brackets (deprecated)
- space-in-parens
- space-infix-ops
- space-after-keywords
- space-unary-ops
- space-return-throw-case
版本
规则在ESLint 0.9.0中引入。