array-element-newline
The --fix
option on the command line can automatically fix some of the problems reported by this rule.
Enforces line breaks between array elements.
A number of style guides require or disallow line breaks between array elements.
Rule Details
This rule enforces line breaks between array elements.
Options
This rule has either a string option:
"always"
(default) requires line breaks between array elements"never"
disallows line breaks between array elements"consistent"
requires consistent usage of linebreaks between array elements
Or an object option (Requires line breaks if any of properties is satisfied. Otherwise, disallows line breaks):
"multiline": <boolean>
requires line breaks if there are line breaks inside elements. If this is false, this condition is disabled."minItems": <number>
requires line breaks if the number of elements is at least the given integer. If this is 0, this condition will act the same as the option"always"
. If this isnull
(the default), this condition is disabled.
Alternatively, different configurations can be specified for array expressions and array patterns:
{
"array-element-newline": ["error", {
"ArrayExpression": "consistent",
"ArrayPattern": { "minItems": 3 },
}]
}
"ArrayExpression"
configuration for array expressions (if unspecified, this rule will not apply to array expressions)"ArrayPattern"
configuration for array patterns of destructuring assignments (if unspecified, this rule will not apply to array patterns)
always
Examples of incorrect code for this rule with the default "always"
option:
/*eslint array-element-newline: ["error", "always"]*/
var c = [1, 2];
var d = [1, 2, 3];
var e = [1, 2, 3
];
var f = [
1, 2, 3
];
var g = [
function foo() {
dosomething();
}, function bar() {
dosomething();
}
];
Examples of correct code for this rule with the default "always"
option:
/*eslint array-element-newline: ["error", "always"]*/
var a = [];
var b = [1];
var c = [1,
2];
var d = [1,
2,
3];
var d = [
1,
2,
3
];
var e = [
function foo() {
dosomething();
},
function bar() {
dosomething();
}
];
never
Examples of incorrect code for this rule with the "never"
option:
/*eslint array-element-newline: ["error", "never"]*/
var c = [
1,
2
];
var d = [
1,
2,
3
];
var e = [
function foo() {
dosomething();
},
function bar() {
dosomething();
}
];
Examples of correct code for this rule with the "never"
option:
/*eslint array-element-newline: ["error", "never"]*/
var a = [];
var b = [1];
var c = [1, 2];
var d = [1, 2, 3];
var e = [
1, 2, 3];
var f = [
1, 2, 3
];
var g = [
function foo() {
dosomething();
}, function bar() {
dosomething();
}
];
consistent
Examples of incorrect code for this rule with the "consistent"
option:
/*eslint array-element-newline: ["error", "consistent"]*/
var a = [
1, 2,
3
];
var b = [
function foo() {
dosomething();
}, function bar() {
dosomething();
},
function baz() {
dosomething();
}
];
Examples of correct code for this rule with the "consistent"
option:
/*eslint array-element-newline: ["error", "consistent"]*/
var a = [];
var b = [1];
var c = [1, 2];
var d = [1, 2, 3];
var e = [
1,
2
];
var f = [
1,
2,
3
];
var g = [
function foo() {
dosomething();
}, function bar() {
dosomething();
}, function baz() {
dosomething();
}
];
var h = [
function foo() {
dosomething();
},
function bar() {
dosomething();
},
function baz() {
dosomething();
}
];
multiline
Examples of incorrect code for this rule with the { "multiline": true }
option:
/*eslint array-element-newline: ["error", { "multiline": true }]*/
var d = [1,
2, 3];
var e = [
function foo() {
dosomething();
}, function bar() {
dosomething();
}
];
Examples of correct code for this rule with the { "multiline": true }
option:
/*eslint array-element-newline: ["error", { "multiline": true }]*/
var a = [];
var b = [1];
var c = [1, 2];
var d = [1, 2, 3];
var e = [
function foo() {
dosomething();
},
function bar() {
dosomething();
}
];
minItems
Examples of incorrect code for this rule with the { "minItems": 3 }
option:
/*eslint array-element-newline: ["error", { "minItems": 3 }]*/
var c = [1,
2];
var d = [1, 2, 3];
var e = [
function foo() {
dosomething();
},
function bar() {
dosomething();
}
];
Examples of correct code for this rule with the { "minItems": 3 }
option:
/*eslint array-element-newline: ["error", { "minItems": 3 }]*/
var a = [];
var b = [1];
var c = [1, 2];
var d = [1,
2,
3];
var e = [
function foo() {
dosomething();
}, function bar() {
dosomething();
}
];
multiline and minItems
Examples of incorrect code for this rule with the { "multiline": true, "minItems": 3 }
options:
/*eslint array-element-newline: ["error", { "multiline": true, "minItems": 3 }]*/
var c = [1,
2];
var d = [1, 2, 3];
var e = [
function foo() {
dosomething();
}, function bar() {
dosomething();
}
];
Examples of correct code for this rule with the { "multiline": true, "minItems": 3 }
options:
/*eslint array-element-newline: ["error", { "multiline": true, "minItems": 3 }]*/
var a = [];
var b = [1];
var c = [1, 2];
var d = [1,
2,
3];
var e = [
function foo() {
dosomething();
},
function bar() {
dosomething();
}
];
ArrayExpression and ArrayPattern
Examples of incorrect code for this rule with the { "ArrayExpression": "always", "ArrayPattern": "never" }
options:
/*eslint array-element-newline: ["error", { "ArrayExpression": "always", "ArrayPattern": "never" }]*/
var a = [1, 2];
var b = [1, 2, 3];
var c = [
function foo() {
dosomething();
}, function bar() {
dosomething();
}
];
var [d,
e] = arr;
var [f,
g,
h] = arr;
var [i = function foo() {
dosomething()
},
j = function bar() {
dosomething()
}] = arr
Examples of correct code for this rule with the { "ArrayExpression": "always", "ArrayPattern": "never" }
options:
/*eslint array-element-newline: ["error", { "ArrayExpression": "always", "ArrayPattern": "never" }]*/
var a = [1,
2];
var b = [1,
2,
3];
var c = [
function foo() {
dosomething();
},
function bar() {
dosomething();
}
];
var [d, e] = arr
var [f, g, h] = arr
var [i = function foo() {
dosomething()
}, j = function bar() {
dosomething()
}] = arr
When Not To Use It
If you don't want to enforce linebreaks between array elements, don't enable this rule.
Compatibility
Related Rules
- array-bracket-spacing
- array-bracket-newline
- object-property-newline
- object-curly-spacing
- object-curly-newline
- max-statements-per-line
- block-spacing
- brace-style
Version
This rule was introduced in ESLint 4.0.0-rc.0.