# 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