Spec-Zone.ru › ESLint

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" по умолчанию:

Open in Playground
/*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" по умолчанию:

Open in Playground
/*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":

Open in Playground
/*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":

Open in Playground
/*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 }:

Open in Playground
/*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 }:

Open in Playground
/*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 }:

Open in Playground
/*eslint array-bracket-spacing: ["error", "always", { "objectsInArrays": false }]*/

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

Примеры правильного кода для этого правила с параметрами "always", { "objectsInArrays": false }:

Open in Playground
/*eslint array-bracket-spacing: ["error", "always", { "objectsInArrays": false }]*/

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

arraysInArrays

Примеры неправильного кода для этого правила с параметрами "always", { "arraysInArrays": false }:

Open in Playground
/*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 }:

Open in Playground
/*eslint array-bracket-spacing: ["error", "always", { "arraysInArrays": false }]*/

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

Когда не следует использовать

Вы можете отключить это правило, если единообразие пробелов между квадратными скобками массива для вас не имеет значения.

Связанные правила

  • space-in-parens
  • object-curly-spacing
  • computed-property-spacing

Версия

Это правило добавлено в ESLint v0.24.0.

Ресурсы

  • Исходный код правила
  • Исходный код тестов

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/array-bracket-spacing

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API