no-empty-pattern
不允許空解構模式
✅ 建議
在設定檔中使用 @eslint/js
的 recommended
設定會啟用此規則
當使用解構時,有可能建立一個沒有效果的模式。當在嵌入式物件解構模式的右邊使用空的大括號時會發生這種情況,例如
// doesn't create any variables
var {a: {}} = foo;
在這段程式碼中,沒有建立新的變數,因為 a
只是一個位置輔助器,而 {}
預期包含要建立的變數,例如
// creates variable b
var {a: { b }} = foo;
在許多情況下,空的物件模式是一個錯誤,作者打算改用預設值,例如
// creates variable a
var {a = {}} = foo;
這兩種模式之間的差異很細微,尤其是有問題的空模式看起來就像物件字面值。
規則詳情
此規則旨在標記解構的物件和陣列中的任何空模式,因此,每當遇到一個空模式時,都會回報問題。
此規則的不正確程式碼範例
在遊樂場開啟
/*eslint no-empty-pattern: "error"*/
var = foo;
var = foo;
var {a: } = foo;
var {a: } = foo;
function foo() {}
function bar() {}
function baz({a: }) {}
function qux({a: }) {}
此規則的正確程式碼範例
在遊樂場開啟
/*eslint no-empty-pattern: "error"*/
var {a = {}} = foo;
var {a = []} = foo;
function foo({a = {}}) {}
function bar({a = []}) {}
選項
此規則具有物件選項以進行例外
allowObjectPatternsAsParameters
預設設定為 false
。將此選項設定為 true
允許空物件模式作為函式參數。
注意:此規則不允許空陣列模式作為函式參數。
此規則使用 {"allowObjectPatternsAsParameters": true}
選項的不正確程式碼範例
在遊樂場開啟
/*eslint no-empty-pattern: ["error", { "allowObjectPatternsAsParameters": true }]*/
function foo({a: }) {}
var bar = function({a: }) {};
var bar = ({a: }) => {};
var bar = (= bar ) => {};
var bar = (= { bar: 1 } ) => {};
function baz() {}
此規則使用 {"allowObjectPatternsAsParameters": true}
選項的正確程式碼範例
在遊樂場開啟
/*eslint no-empty-pattern: ["error", { "allowObjectPatternsAsParameters": true }]*/
function foo({}) {}
var bar = function({}) {};
var bar = ({}) => {};
function baz({} = {}) {}
版本
此規則是在 ESLint v1.7.0 中引入的。