unicorn/no-object-as-default-parameter 吹毛求疵
作用
不允許使用物件字面值作為參數的預設值。
為什麼這樣不好?
預設參數不應透過物件字面值傳遞給函式。foo = {a: false}
參數如果只使用一個選項,運作良好。一旦新增其他選項,當只傳遞一個選項時,您可能會冒著替換整個 foo = {a: false, b: true}
物件的風險:{a: true}
。因此,應該改用物件解構。
範例
此規則的不正確程式碼範例
javascript
function foo(foo = { a: false }) {}
此規則的正確程式碼範例
javascript
function foo({ a = false } = {}) {}