版本

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 中引入的。

資源

變更語言