跳至内容

@stylistic/

数组元素换行

许多风格指南要求或禁止在数组元素之间换行。

规则详情

此规则强制在数组元素之间换行。

选项

此规则具有字符串选项

  • "always" (默认) 要求在数组元素之间换行
  • "never" 禁止在数组元素之间换行
  • "consistent" 要求在数组元素之间一致地使用换行符

或对象选项(如果任何属性满足,则需要换行。否则,禁止换行)

  • "multiline": <boolean> 如果元素内部有换行符,则需要换行。如果为 false,则禁用此条件。
  • "minItems": <number> 如果元素数量至少为给定的整数,则需要换行。如果为 0,则此条件将与选项 "always" 相同。如果为 null(默认值),则禁用此条件。

或者,可以为数组表达式和数组模式指定不同的配置

json
{
    "array-element-newline": ["error", {
        "ArrayExpression": "consistent",
        "ArrayPattern": { "minItems": 3 },
    }]
}
  • "ArrayExpression" 数组表达式的配置(如果未指定,此规则将不适用于数组表达式)
  • "ArrayPattern" 解构赋值的数组模式的配置(如果未指定,此规则将不适用于数组模式)

始终

此规则使用默认选项 "always" 时,错误代码示例

js
/*eslint @stylistic/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" 时,正确代码示例

js
/*eslint @stylistic/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" 选项时,错误代码示例

js
/*eslint @stylistic/array-element-newline: ["error", "never"]*/

var c = [
    1,
2 ]; var d = [ 1,
2,
3 ]; var e = [ function foo() { dosomething(); },
function bar() { dosomething(); } ];
错误

此规则使用 "never" 选项时,正确代码示例

js
/*eslint @stylistic/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" 选项时,错误代码示例

js
/*eslint @stylistic/array-element-newline: ["error", "consistent"]*/

var a = [
    1,
2,
3 ]; var b = [ function foo() { dosomething(); },
function bar() {
dosomething(); }, function baz() { dosomething(); } ];
错误

此规则使用 "consistent" 选项时,正确代码示例

js
/*eslint @stylistic/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": true } 选项时,错误代码示例

js
/*eslint @stylistic/array-element-newline: ["error", { "multiline": true }]*/

var d = [1,
2, 3]; var e = [ function foo() { dosomething(); },
function bar() {
dosomething(); } ];
错误

此规则使用 { "multiline": true } 选项时,正确代码示例

js
/*eslint @stylistic/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": 3 } 选项时,错误代码示例

js
/*eslint @stylistic/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 } 选项时,正确代码示例

js
/*eslint @stylistic/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": true, "minItems": 3 } 选项时,错误代码示例

js
/*eslint @stylistic/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 } 选项时,正确代码示例

js
/*eslint @stylistic/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": "always", "ArrayPattern": "never" } 选项时,错误代码示例

js
/*eslint @stylistic/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" } 选项时,正确代码示例

js
/*eslint @stylistic/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
正确

何时不使用它

如果您不想在数组元素之间强制换行,请不要启用此规则。

兼容性