跳至内容

@stylistic/js/

array-bracket-spacing

许多风格指南要求或禁止在方括号和其他标记之间使用空格。此规则适用于数组字面量和解构赋值(ECMAScript 6)。

js
/*eslint-env es6*/

var arr = [ 'foo', 'bar' ];
var [ x, y ] = z;

var arr = ['foo', 'bar'];
var [x,y] = z;

规则详情

此规则强制在方括号内使用一致的空格。

选项

此规则有一个字符串选项

  • "never"(默认)禁止在方括号内使用空格
  • "always" 要求在方括号内使用一个或多个空格或换行符

此规则有一个对象选项,用于对 "never" 选项进行例外处理

  • "singleValue": true 要求在包含单个元素的数组字面量的方括号内使用一个或多个空格或换行符
  • "objectsInArrays": true 要求在数组字面量的方括号与其对象字面量元素的大括号之间使用一个或多个空格或换行符 [ {} ]
  • "arraysInArrays": true 要求在数组字面量的方括号与其数组字面量元素的方括号之间使用一个或多个空格或换行符 [ [] ]

此规则有一个对象选项,用于对 "always" 选项进行例外处理

  • "singleValue": false 禁止在包含单个元素的数组字面量的方括号内使用空格
  • "objectsInArrays": false 禁止在数组字面量的方括号与其对象字面量元素的大括号之间使用空格 [{}]
  • "arraysInArrays": false 禁止在数组字面量的方括号与其数组字面量元素的方括号之间使用空格 [[]]

此规则具有内置例外

  • "never"(以及对 "always" 选项的例外)允许在方括号内使用换行符,因为这是一种常见的模式
  • "always" 在空数组字面量 [] 中不需要空格或换行符。

从不

使用默认 "never" 选项时,此规则的错误代码示例

js
/*eslint @stylistic/js/array-bracket-spacing: ["error", "never"]*/
/*eslint-env es6*/

var arr = [
'foo', 'bar'
];
var arr = ['foo', 'bar'
];
var arr = [
['foo'], 'bar'];
var arr = [[
'foo'
], 'bar'];
var arr = [
'foo',
'bar' ]; var [
x, y
] = z;
var [
x,y
] = z;
var [
x, ...y
] = z;
var [
,,x,
] = z;
错误

使用默认 "never" 选项时,此规则的正确代码示例

js
/*eslint @stylistic/js/array-bracket-spacing: ["error", "never"]*/
/*eslint-env es6*/

var arr = [];
var arr = ['foo', 'bar', 'baz'];
var arr = [['foo'], 'bar', 'baz'];
var arr = [
  'foo',
  'bar',
  'baz'
];
var arr = ['foo',
  'bar'
];
var arr = [
  'foo',
  'bar'];

var [x, y] = z;
var [x,y] = z;
var [x, ...y] = z;
var [,,x,] = z;
正确

总是

使用 "always" 选项时,此规则的错误代码示例

js
/*eslint @stylistic/js/array-bracket-spacing: ["error", "always"]*/
/*eslint-env es6*/

var arr = 
[
'foo', 'bar'
]
;
var arr =
[
'foo', 'bar' ];
var arr = [
[
'foo'
]
, 'bar' ];
var arr =
[
'foo',
'bar' ]; var arr = [ 'foo', 'bar'
]
;
var
[
x, y
]
= z;
var
[
x,y
]
= z;
var
[
x, ...y
]
= z;
var
[
,,x,
]
= z;
错误

使用 "always" 选项时,此规则的正确代码示例

js
/*eslint @stylistic/js/array-bracket-spacing: ["error", "always"]*/
/*eslint-env es6*/

var arr = [];
var arr = [ 'foo', 'bar', 'baz' ];
var arr = [ [ 'foo' ], 'bar', 'baz' ];
var arr = [ 'foo',
  'bar'
];
var arr = [
  'foo',
  'bar' ];
var arr = [
  'foo',
  'bar',
  'baz'
];

var [ x, y ] = z;
var [ x,y ] = z;
var [ x, ...y ] = z;
var [ ,,x, ] = z;
正确

单值

使用 "always", { "singleValue": false } 选项时,此规则的错误代码示例

js
/*eslint @stylistic/js/array-bracket-spacing: ["error", "always", { "singleValue": false }]*/

var foo = [
'foo'
];
var foo = [
'foo'];
var foo = ['foo'
];
var foo = [
1
];
var foo = [
1];
var foo = [1
];
var foo = [
[ 1, 2 ]
];
var foo = [
{ 'foo': 'bar' }
];
错误

使用 "always", { "singleValue": false } 选项时,此规则的正确代码示例

js
/*eslint @stylistic/js/array-bracket-spacing: ["error", "always", { "singleValue": false }]*/

var foo = ['foo'];
var foo = [1];
var foo = [[ 1, 1 ]];
var foo = [{ 'foo': 'bar' }];
正确

数组中的对象

使用 "always", { "objectsInArrays": false } 选项时,此规则的错误代码示例

js
/*eslint @stylistic/js/array-bracket-spacing: ["error", "always", { "objectsInArrays": false }]*/

var arr = [
{ 'foo': 'bar' }
];
var arr = [
{
'foo': 'bar' }
]
错误

使用 "always", { "objectsInArrays": false } 选项时,此规则的正确代码示例

js
/*eslint @stylistic/js/array-bracket-spacing: ["error", "always", { "objectsInArrays": false }]*/

var arr = [{ 'foo': 'bar' }];
var arr = [{
  'foo': 'bar'
}];
正确

数组中的数组

使用 "always", { "arraysInArrays": false } 选项时,此规则的错误代码示例

js
/*eslint @stylistic/js/array-bracket-spacing: ["error", "always", { "arraysInArrays": false }]*/

var arr = [
[ 1, 2 ], 2, 3, 4 ];
var arr = [
[ 1, 2 ], 2, [ 3, 4 ]
];
错误

使用 "always", { "arraysInArrays": false } 选项时,此规则的正确代码示例

js
/*eslint @stylistic/js/array-bracket-spacing: ["error", "always", { "arraysInArrays": false }]*/

var arr = [[ 1, 2 ], 2, 3, 4 ];
var arr = [[ 1, 2 ], 2, [ 3, 4 ]];
正确

何时不使用它

如果您不关心数组括号之间空格的一致性,可以关闭此规则。