# array-element-newline

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

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

许多样式指南要求或不允许在数组元素之间换行。

# 规则详情

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

# 选项

此规则有一个字符串选项:

  • "always"(默认)需要在数组元素之间换行
  • "never" 不允许数组元素之间换行
  • "consistent" 需要一致地使用数组元素之间的换行符

或对象选项(如果满足任何属性,则需要换行符。否则,不允许换行):

  • 如果元素内部有换行符,"multiline": <boolean> 需要换行符。如果为假,则禁用此条件。
  • 如果元素的数量至少是给定的整数,"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

# 何时不使用

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

# 兼容性

  • JSCS:``validateNewlineAfterArrayElements
Last Updated: 5/13/2023, 8:55:38 PM