跳至內容

eslint/no-empty-pattern 正確性

此規則預設開啟。

作用

不允許空的解構模式

為何這樣不好?

當使用解構時,有可能創建一個沒有效果的模式。當在嵌入的物件解構模式右側使用空的大括號時,就會發生這種情況,例如

JavaScript
// doesn't create any variables
var {a: {}} = foo;

在這段程式碼中,沒有創建新的變數,因為 a 只是一個位置輔助,而 {} 則應該包含要創建的變數,例如

JavaScript
// creates variable b
var {a: { b }} = foo;

在許多情況下,空的物件模式是一種錯誤,作者的意圖是使用預設值,例如

JavaScript
// creates variable a
var {a = {}} = foo;

這兩種模式之間的差異很微妙,特別是因為有問題的空模式看起來就像一個物件字面量。

此規則的不正確程式碼範例:

JavaScript
var {} = foo;
var [] = foo;
var {a: {}} = foo;
var {a: []} = foo;
function foo({}) {}
function foo([]) {}
function foo({a: {}}) {}
function foo({a: []}) {}

此規則的正確程式碼範例:

JavaScript
var {a = {}} = foo;
var {a = []} = foo;
function foo({a = {}}) {}
function foo({a = []}) {}

參考資料

根據 MIT 授權釋出。