Spec-Zone.ru › ESLint

Пробелы внутри скобок массива

Принудительно соблюдать согласованное расстояние внутри скобок массива

🔧 Исправимо

Некоторые проблемы, обнаруженные этим правилом, автоматически исправимы с помощью опции --fix командной строки

Это правило было устаревшим в ESLint v8.53.0. Используйте соответствующее правило соответствующее правило в @stylistic/eslint-plugin-js.

Некоторые руководства по стилю требуют или запрещают пробелы между скобками массива и другими токенами. Это правило применяется как к литералам массива, так и к операциям деструктуризации (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":

Открыть в 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":

Открыть в 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":

Открыть в 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":

Открыть в 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 }:

Открыть в 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 }:

Открыть в 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 }:

Открыть в Playground
/*eslint array-bracket-spacing: ["error", "always", { "objectsInArrays": false }]*/

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

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

Открыть в Playground
/*eslint array-bracket-spacing: ["error", "always", { "objectsInArrays": false }]*/

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

arraysInArrays

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

Открыть в 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 }:

Открыть в 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