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
使用默认 "never" 选项时,以下示例代码为不正确的。
js
/*eslint @stylistic/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; incorrect
使用默认 "never" 选项时,以下示例代码为正确的。
js
/*eslint @stylistic/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; correct
always
使用 "always" 选项时,以下示例代码为不正确的。
js
/*eslint @stylistic/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; incorrect
使用 "always" 选项时,以下示例代码为正确的。
js
/*eslint @stylistic/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; correct
singleValue
使用 "always", { "singleValue": false } 选项时,以下示例代码为不正确的。
js
/*eslint @stylistic/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' } ]; incorrect
使用 "always", { "singleValue": false } 选项时,以下示例代码为正确的。
js
/*eslint @stylistic/array-bracket-spacing: ["error", "always", { "singleValue": false }]*/
var foo = ['foo'];
var foo = [1];
var foo = [[ 1, 1 ]];
var foo = [{ 'foo': 'bar' }]; correct
objectsInArrays
使用 "always", { "objectsInArrays": false } 选项时,以下示例代码为不正确的。
js
/*eslint @stylistic/array-bracket-spacing: ["error", "always", { "objectsInArrays": false }]*/
var arr = [ { 'foo': 'bar' } ];
var arr = [ {
'foo': 'bar'
} ] incorrect
使用 "always", { "objectsInArrays": false } 选项时,以下示例代码为正确的。
js
/*eslint @stylistic/array-bracket-spacing: ["error", "always", { "objectsInArrays": false }]*/
var arr = [{ 'foo': 'bar' }];
var arr = [{
'foo': 'bar'
}]; correct
arraysInArrays
使用 "always", { "arraysInArrays": false } 选项时,以下示例代码为不正确的。
js
/*eslint @stylistic/array-bracket-spacing: ["error", "always", { "arraysInArrays": false }]*/
var arr = [ [ 1, 2 ], 2, 3, 4 ];
var arr = [ [ 1, 2 ], 2, [ 3, 4 ] ]; incorrect
使用 "always", { "arraysInArrays": false } 选项时,以下示例代码为正确的。
js
/*eslint @stylistic/array-bracket-spacing: ["error", "always", { "arraysInArrays": false }]*/
var arr = [[ 1, 2 ], 2, 3, 4 ];
var arr = [[ 1, 2 ], 2, [ 3, 4 ]]; correct
何时不使用它
如果您不关心数组方括号之间空格的一致性,可以关闭此规则。