array-bracket-spacing
A number of style guides require or disallow spaces between array brackets and other tokens. This rule applies to both array literals and destructuring assignments (ECMAScript 6).
var arr = [ 'foo', 'bar' ]; var [ x, y ] = z; var arr = ['foo', 'bar']; var [x,y] = z;Rule Details
This rule enforces consistent spacing inside array brackets.
Options
This rule has a string option:
"never"(default) disallows spaces inside array brackets"always"requires one or more spaces or newlines inside array brackets
This rule has an object option for exceptions to the "never" option:
"singleValue": truerequires one or more spaces or newlines inside brackets of array literals that contain a single element"objectsInArrays": truerequires one or more spaces or newlines between brackets of array literals and braces of their object literal elements[ {or} ]"arraysInArrays": truerequires one or more spaces or newlines between brackets of array literals and brackets of their array literal elements[ [or] ]
This rule has an object option for exceptions to the "always" option:
"singleValue": falsedisallows spaces inside brackets of array literals that contain a single element"objectsInArrays": falsedisallows spaces between brackets of array literals and braces of their object literal elements[{or}]"arraysInArrays": falsedisallows spaces between brackets of array literals and brackets of their array literal elements[[or]]
This rule has built-in exceptions:
"never"(and also the exceptions to the"always"option) allows newlines inside array brackets, because this is a common pattern"always"does not require spaces or newlines in empty array literals[]
never
Examples of incorrect code for this rule with the default "never" option:
/* eslint @stylistic/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;Examples of correct code for this rule with the default "never" option:
/* eslint @stylistic/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
Examples of incorrect code for this rule with the "always" option:
/* eslint @stylistic/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;Examples of correct code for this rule with the "always" option:
/* eslint @stylistic/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
Examples of incorrect code for this rule with the "always", { "singleValue": false } options:
/* eslint @stylistic/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' } ];Examples of correct code for this rule with the "always", { "singleValue": false } options:
/* eslint @stylistic/array-bracket-spacing: ["error", "always", { "singleValue": false }] */ var foo = ['foo']; var foo = [1]; var foo = [[ 1, 1 ]]; var foo = [{ 'foo': 'bar' }];objectsInArrays
Examples of incorrect code for this rule with the "always", { "objectsInArrays": false } options:
/* eslint @stylistic/array-bracket-spacing: ["error", "always", { "objectsInArrays": false }] */ var arr = [ { 'foo': 'bar' } ]; var arr = [ { 'foo': 'bar' } ]Examples of correct code for this rule with the "always", { "objectsInArrays": false } options:
/* eslint @stylistic/array-bracket-spacing: ["error", "always", { "objectsInArrays": false }] */ var arr = [{ 'foo': 'bar' }]; var arr = [{ 'foo': 'bar' }];arraysInArrays
Examples of incorrect code for this rule with the "always", { "arraysInArrays": false } options:
/* eslint @stylistic/array-bracket-spacing: ["error", "always", { "arraysInArrays": false }] */ var arr = [ [ 1, 2 ], 2, 3, 4 ]; var arr = [ [ 1, 2 ], 2, [ 3, 4 ] ];Examples of correct code for this rule with the "always", { "arraysInArrays": false } options:
/* eslint @stylistic/array-bracket-spacing: ["error", "always", { "arraysInArrays": false }] */ var arr = [[ 1, 2 ], 2, 3, 4 ]; var arr = [[ 1, 2 ], 2, [ 3, 4 ]];When Not To Use It
You can turn this rule off if you are not concerned with the consistency of spacing between array brackets.