跳至內容

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

參考資料

以 MIT 授權發佈。