array-bracket-spacing
Обеспечивает единообразие пробелов внутри квадратных скобок массива
Некоторые проблемы, о которых сообщает это правило, могут быть автоматически исправлены параметром --fix командной строки
Это правило было объявлено устаревшим в ESLint v8.53.0. Оно будет удалено в v11.0.0. Используйте соответствующее правило из @stylistic/eslint-plugin.
Некоторые руководства по стилю требуют или запрещают пробелы между квадратными скобками массива и другими токенами. Это правило применяется как к литералам массивов, так и к деструктурирующим присваиваниям (ECMAScript 6).
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" по умолчанию:
/*eslint array-bracket-spacing: ["error", "never"]*/
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" по умолчанию:
/*eslint array-bracket-spacing: ["error", "never"]*/
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
Примеры неправильного кода для этого правила с параметром "always":
/*eslint array-bracket-spacing: ["error", "always"]*/
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":
/*eslint array-bracket-spacing: ["error", "always"]*/
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;
singleValue
Примеры неправильного кода для этого правила с параметрами "always", { "singleValue": false }:
/*eslint 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 }:
/*eslint array-bracket-spacing: ["error", "always", { "singleValue": false }]*/
var foo = ['foo'];
var foo = [1];
var foo = [[ 1, 1 ]];
var foo = [{ 'foo': 'bar' }];
objectsInArrays
Примеры неправильного кода для этого правила с параметрами "always", { "objectsInArrays": false }:
/*eslint array-bracket-spacing: ["error", "always", { "objectsInArrays": false }]*/
var arr = [{ 'foo': 'bar' }];
var arr = [{
'foo': 'bar'
}]
Примеры правильного кода для этого правила с параметрами "always", { "objectsInArrays": false }:
/*eslint array-bracket-spacing: ["error", "always", { "objectsInArrays": false }]*/
var arr = [{ 'foo': 'bar' }];
var arr = [{
'foo': 'bar'
}];
arraysInArrays
Примеры неправильного кода для этого правила с параметрами "always", { "arraysInArrays": false }:
/*eslint array-bracket-spacing: ["error", "always", { "arraysInArrays": false }]*/
var arr = [[ 1, 2 ], 2, 3, 4 ];
var arr = [[ 1, 2 ], 2, [ 3, 4 ]];
Примеры правильного кода для этого правила с параметрами "always", { "arraysInArrays": false }:
/*eslint array-bracket-spacing: ["error", "always", { "arraysInArrays": false }]*/
var arr = [[ 1, 2 ], 2, 3, 4 ];
var arr = [[ 1, 2 ], 2, [ 3, 4 ]];
Когда не следует использовать
Вы можете отключить это правило, если единообразие пробелов между квадратными скобками массива для вас не имеет значения.
Связанные правила
Версия
Это правило добавлено в ESLint v0.24.0.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/array-bracket-spacing