Spec-Zone.ru › ESLint

пробелы-в-скобках

Обеспечивает согласованное распределение пробелов внутри фигурных скобок литералов объектов и квадратных скобок литералов массивов.

Важно

Эта правила была удалена в ESLint v1.0.0 и заменена правилами object-curly-spacing и array-bracket-spacing.

Хотя предпочтения форматирования очень индивидуальны, ряд руководств по стилю требуют или запрещают пробелы между скобками:

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

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

Подробное описание правила

Это правило направлено на поддержание согласованности пробелов внутри квадратных скобок, либо запрещая пробелы внутри скобок между скобками и другими токенами, либо навязывая пробелы. Скобки, отделенные от смежного значения новой строкой, исключаются из этого правила, так как это распространённый шаблон. Литералы объектов, используемые в качестве первого или последнего элемента массива, также игнорируются.

Параметры

Для этого правила доступны два параметра:

  • "always" требует пробел внутри литералов объектов и массивов
  • "never" требует отсутствие пробелов внутри литералов объектов и массивов (по умолчанию)

В зависимости от ваших соглашений об оформлении кода, вы можете выбрать любой из параметров, указав его в вашей конфигурации:

"space-in-brackets": ["error", "always"]

“никогда”

Примеры некорректного кода для этого правила с параметром "never" по умолчанию:

foo[ 'bar' ];
foo['bar' ];

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

var obj = { 'foo': 'bar' };
var obj = {'foo': 'bar' };
var obj = { baz: {'foo': 'qux'}, bar};
var obj = {baz: { 'foo': 'qux' }, bar};

Примеры корректного кода для этого правила с параметром "never" по умолчанию:

// When options are ["error", "never"]

foo['bar'];
foo[
  'bar'
];
foo[
  'bar'];

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

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

var obj = {'foo': 'bar'};

var obj = {'foo': {'bar': 'baz'}, 'qux': 'quxx'};

var obj = {
  'foo': 'bar'
};
var obj = {'foo': 'bar'
};
var obj = {
  'foo':'bar'};

var obj = {};

“всегда”

Примеры некорректного кода для этого правила с параметром "always":

foo['bar'];
foo['bar' ];
foo[ 'bar'];

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

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

var obj = {'foo': 'bar'};
var obj = {'foo': 'bar' };
var obj = { baz: {'foo': 'qux'}, bar};
var obj = {baz: { 'foo': 'qux' }, bar};
var obj = {'foo': 'bar'
};

var obj = {
  'foo':'bar'};

Примеры корректного кода для этого правила с параметром "always":

foo[ 'bar' ];
foo[
  'bar'
];

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

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

var obj = {};
var obj = { 'foo': 'bar' };
var obj = { 'foo': { 'bar': 'baz' }, 'qux': 'quxx' };
var obj = {
  'foo': 'bar'
};

Обратите внимание, что "always" имеет специальный случай, когда {} и [] не считаются проблемами.

Исключения

Литерал объекта может использоваться в качестве третьего элемента массива для указания исключений по пробелам. Эти исключения работают в контексте первого параметра. То есть, если "always" установлен для навязывания пробелов, а исключение установлено на false, это запретит пробелы для совпадающих случаев. Аналогично, если "never" установлен для запрета пробелов, а исключение установлено на true, это будет навязывать пробелы для совпадающих случаев.

Вы можете добавить исключения следующим образом:

В случае с "always" параметром, установите исключение на false, чтобы его активировать:

"space-in-brackets": ["error", "always", {
  "singleValue": false,
  "objectsInArrays": false,
  "arraysInArrays": false,
  "arraysInObjects": false,
  "objectsInObjects": false,
  "propertyName": false
}]

В случае с "never" параметром, установите исключение на true, чтобы его активировать:

"space-in-brackets": ["error", "never", {
  "singleValue": true,
  "objectsInArrays": true,
  "arraysInArrays": true,
  "arraysInObjects": true,
  "objectsInObjects": true,
  "propertyName": true
}]

Доступны следующие исключения:

  • singleValue устанавливает пробелы для единственного значения внутри квадратных скобок массива.
  • objectsInArrays устанавливает пробелы между фигурными скобками и квадратными скобками литералов объектов, являющихся первым или последним элементом в массиве.
  • arraysInArrays устанавливает пробелы между квадратными скобками литералов массивов, являющихся первым или последним элементом в массиве.
  • arraysInObjects устанавливает пробелы между квадратной скобкой и фигурной скобкой литерала массива, являющегося последним элементом в объекте.
  • objectsInObjects устанавливает пробелы между фигурной скобкой литерала объекта, являющегося последним элементом в объекте, и фигурной скобкой содержащего объекта.
  • propertyName устанавливает пробелы в квадратных скобках вычисляемых членов выражений.

В каждом из следующих примеров предполагается "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' } ];

Примеры корректного кода для этого правила, когда "singleValue" установлен на false:

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

Примеры некорректного кода, когда "objectsInArrays" установлен на false:

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

Примеры корректного кода, когда "objectsInArrays" установлен на false:

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

Примеры некорректного кода, когда "arraysInArrays" установлен на false:

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

Примеры корректного кода, когда "arraysInArrays" установлен на false:

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

Примеры некорректного кода, когда "arraysInObjects" установлен на false:

var obj = { "foo": [ 1, 2 ] };
var obj = { "foo": [ "baz", "bar" ] };

Примеры корректного кода, когда "arraysInObjects" установлен на false:

var obj = { "foo": [ 1, 2 ]};
var obj = { "foo": [ "baz", "bar" ]};

Примеры некорректного кода, когда "objectsInObjects" установлен на false:

var obj = { "foo": { "baz": 1, "bar": 2 } };
var obj = { "foo": [ "baz", "bar" ], "qux": { "baz": 1, "bar": 2 } };

Примеры корректного кода, когда "objectsInObjects" установлен на false:

var obj = { "foo": { "baz": 1, "bar": 2 }};
var obj = { "foo": [ "baz", "bar" ], "qux": { "baz": 1, "bar": 2 }};

Примеры некорректного кода, когда "propertyName" установлен на false:

var foo = obj[ 1 ];
var foo = obj[ bar ];

Примеры корректного кода, когда "propertyName" установлен на false:

var foo = obj[bar];
var foo = obj[0, 1];

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

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

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

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

Версия

Это правило было добавлено в ESLint v0.4.1 и удалено в v1.0.0-rc-1.

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/space-in-brackets

Spec-Zone.ru

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