array-element-newline
在每个数组元素后强制换行
此规则报告的一些问题可通过 --fix 命令行 选项自动修复
This rule was deprecated in ESLint v8.53.0. It will be removed in v11.0.0. Please use the corresponding rule in @stylistic/eslint-plugin.
许多风格指南要求或不允许在数组元素之间换行。
🌐 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"(默认)要求数组元素之间有换行符"never"不允许数组元素之间的换行"consistent"需要在数组元素之间保持一致的换行使用
或者一个对象选项(如果满足任何属性,则需要换行符。否则,不允许换行符):
🌐 Or an object option (Requires line breaks if any of properties is satisfied. Otherwise, disallows line breaks):
"multiline": <boolean>如果元素内部有换行符,则需要换行。如果为假,则此条件被禁用。"minItems": <number>要求如果元素数量至少达到给定整数时换行。如果这个值是 0,该条件将与选项"always"的作用相同。如果是null(默认值),该条件将被禁用。
或者,可以为数组表达式和数组模式指定不同的配置:
🌐 Alternatively, different configurations can be specified for array expressions and array patterns:
{
"array-element-newline": ["error", {
"ArrayExpression": "consistent",
"ArrayPattern": { "minItems": 3 },
}]
}
"ArrayExpression"数组表达式的配置(如果未指定,此规则将不适用于数组表达式)"ArrayPattern"配置用于解构赋值的数组模式(如果未指定,则此规则不适用于数组模式)
always
使用默认 "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();
}
];
使用默认 "always" 选项时,该规则的正确代码示例:
🌐 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
使用 "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();
}
];
使用 "never" 选项时,此规则的正确代码示例:
🌐 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
使用 "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();
}
];
使用 "consistent" 选项时,此规则的正确代码示例:
🌐 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
使用 { "multiline": true } 选项时违反此规则的错误代码示例:
🌐 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();
}
];
使用 { "multiline": true } 选项时,此规则的正确代码示例:
🌐 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
使用 { "minItems": 3 } 选项时违反此规则的错误代码示例:
🌐 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();
}
];
使用 { "minItems": 3 } 选项时,此规则的正确代码示例:
🌐 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 和 minItems
🌐 multiline and minItems
使用 { "multiline": true, "minItems": 3 } 选项时违反此规则的错误代码示例:
🌐 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();
}
];
使用 { "multiline": true, "minItems": 3 } 选项的此规则的正确代码示例:
🌐 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 和 ArrayPattern
🌐 ArrayExpression and ArrayPattern
使用 { "ArrayExpression": "always", "ArrayPattern": "never" } 选项时违反此规则的错误代码示例:
🌐 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
使用 { "ArrayExpression": "always", "ArrayPattern": "never" } 选项的此规则的正确代码示例:
🌐 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
相关规则
版本
此规则是在 ESLint v4.0.0-rc.0 中引入。