首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

array-bracket-spacing

--fix命令行上的选项可以自动修复一些被这条规则反映的问题。

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

代码语言:javascript
复制
/*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需要数组文本的括号和它们的数组文本元素的括号之间的一个或多个空格或换行符[ [or] ]

此规则有一个对象选项,用于"always"选项的例外情况:

  • "singleValue": false 不允许包含单个元素的数组文字的括号内的空格
  • "objectsInArrays": false不允许数组文字的括号和其对象文字元素[{or}]
  • "arraysInArrays": false不允许数组文本的括号和它们的数组文本元素的括号之间的空间[[or]]

规则具有内置的例外情况:

  • "never"(以及"always"选项的例外)允许在数组括号内换行,因为这是一种常见模式
  • "always" 在空数组文字中不需要空格或换行符 []

never

"never"规则的默认错误代码示例:

代码语言:javascript
复制
/*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"选项的此规则的正确代码示例:

代码语言:javascript
复制
/*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"规则的错误代码示例包含以下选项:

代码语言:javascript
复制
/*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"规则的正确代码示例包含以下"always"选项:

代码语言:javascript
复制
/*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 规则的错误代码示例如下:

代码语言:javascript
复制
/*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 }规则的正确代码示例包含以下选项:

代码语言:javascript
复制
/*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 }规则的错误代码示例如下:

代码语言:javascript
复制
/*eslint array-bracket-spacing: ["error", "always", { "objectsInArrays": false }]*/

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

"always", { "objectsInArrays": false }规则的正确代码示例包含以下选项:

代码语言:javascript
复制
/*eslint array-bracket-spacing: ["error", "always", { "objectsInArrays": false }]*/

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

arraysInArrays

"always", { "arraysInArrays": false }规则的代码错误代码示例如下:

代码语言:javascript
复制
/*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 }规则的正确代码示例包含以下选项:

代码语言:javascript
复制
/*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 0.24.0中引入。

资源

扫码关注腾讯云开发者

领取腾讯云代金券