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 = []}) {}