# array-bracket-spacing

在数组括号内强制保持一致的间距

一些该规则报告的问题可以通过 --fix 命令行选项 自动修复

许多样式指南要求或不允许在数组括号和其他标记之间使用空格。此规则适用于数组字面和解构赋值(ECMAScript 6)。

/*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" 选项的错误代码示例:

/*eslint 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;

此规则使用默认 "never" 选项的正确代码示例:

/*eslint 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;

# always

此规则使用 "always" 选项的错误代码示例:

/*eslint 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;

此规则使用 "always" 选项的正确代码示例:

/*eslint 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;

# 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 ]];

# 何时不使用

如果您不关心数组括号之间间距的一致性,您可以关闭此规则。

Last Updated: 5/13/2023, 8:55:38 PM