版本

array-element-newline

强制在每个数组元素之后换行

🔧 可修复

此规则报告的一些问题可以通过--fix 命令行选项自动修复。

此规则已在 ESLint v8.53.0 中**弃用**。请使用 相应的规则@stylistic/eslint-plugin-js 中。

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

规则详情

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

选项

此规则具有字符串选项

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

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

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

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

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

always

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

在在线代码测试中打开
/*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"选项时,此规则的正确代码示例

在在线代码测试中打开
/*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"选项时,此规则的错误代码示例

在在线代码测试中打开
/*eslint array-element-newline: ["error", "never"]*/

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

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

在在线代码测试中打开
/*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"选项时,此规则的错误代码示例

在在线代码测试中打开
/*eslint array-element-newline: ["error", "consistent"]*/

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

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

在在线代码测试中打开
/*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 }选项时,此规则的错误代码示例

在在线代码测试中打开
/*eslint array-element-newline: ["error", { "multiline": true }]*/

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

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

在在线代码测试中打开
/*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 }选项时,此规则的错误代码示例

在在线代码测试中打开
/*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 }选项时,此规则的正确代码示例

在在线代码测试中打开
/*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": true, "minItems": 3 }选项时,此规则的错误代码示例

在在线代码测试中打开
/*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 }选项时,此规则的正确代码示例

在在线代码测试中打开
/*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": "always", "ArrayPattern": "never" }选项时,此规则的错误代码示例

在在线代码测试中打开
/*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" }选项时,此规则的正确代码示例

在在线代码测试中打开
/*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

何时不使用它

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

兼容性

版本

此规则是在 ESLint v4.0.0-rc.0 中引入的。

资源

更改语言