array-bracket-spacing
This rule enforces consistent spacing inside array brackets.
Rule Type: Layout
Fixable: Yes (automatically fixable)
Deprecated: Consider using Prettier
Rule Details
Some style guides require or disallow spaces inside array brackets:
var arr = [ 'foo', 'bar' ]; // spaces
var arr = ['foo', 'bar']; // no spaces
Options
"never" (default)
Disallow spaces inside array brackets.
Incorrect:
var arr = [ 'foo', 'bar' ];
var arr = ['foo', 'bar' ];
var arr = [ ['foo'], 'bar'];
var [ x, y ] = z;
Correct:
var arr = [];
var arr = ['foo', 'bar', 'baz'];
var arr = [['foo'], 'bar', 'baz'];
var arr = [
'foo',
'bar'
];
var [x, y] = z;
"always"
Require spaces inside array brackets.
Incorrect:
var arr = ['foo', 'bar'];
var arr = ['foo', 'bar' ];
var [x, y] = z;
Correct:
var arr = [];
var arr = [ 'foo', 'bar', 'baz' ];
var arr = [ [ 'foo' ], 'bar', 'baz' ];
var arr = [
'foo',
'bar'
];
var [ x, y ] = z;
Exception Options
singleValue
Control spacing for single-element arrays.
// "always", { "singleValue": false }
var foo = ['foo']; // OK - no spaces for single value
var foo = [ 'foo', 'bar' ]; // Spaces for multiple
objectsInArrays
Control spacing around objects in arrays.
// "always", { "objectsInArrays": false }
var arr = [{ 'foo': 'bar' }]; // No space before }
var arr = [ 'foo', { 'bar': 'baz' }, 'qux' ]; // Space elsewhere
arraysInArrays
Control spacing around nested arrays.
// "always", { "arraysInArrays": false }
var arr = [[ 1, 2 ], 2, 3, 4 ]; // No space before ]]
var arr = [ 1, [ 2, 3 ]]; // No space after [ before [
Configuration Examples
// No spaces (default)
{
"rules": {
"array-bracket-spacing": ["error", "never"]
}
}
// Always spaces
{
"rules": {
"array-bracket-spacing": ["error", "always"]
}
}
// With exceptions
{
"rules": {
"array-bracket-spacing": ["error", "always", {
"singleValue": false,
"objectsInArrays": false,
"arraysInArrays": false
}]
}
}
When Not to Use It
Most teams now use Prettier for formatting. If you use Prettier, disable this rule.
Disable if:
- You use Prettier or another formatter
- You don’t care about spacing consistency
- Your team hasn’t agreed on a style