prefer-object-spread
禁止使用 Object.assign,並以物件字面值作為第一個參數,建議改用物件展開語法。
🔧 可自動修正
此規則報告的某些問題可以透過 --fix
命令列選項自動修正。
當使用物件字面值作為第一個參數呼叫 Object.assign 時,此規則會要求改用物件展開語法。此規則也會警告使用單一參數為物件字面值的 Object.assign
呼叫,在此情況下,不需要使用 Object.assign
呼叫。
物件展開語法在 ES2018 中引入,它是一種宣告式的替代方案,效能可能優於更動態、命令式的 Object.assign
。
規則詳細資訊
此規則的錯誤程式碼範例
在線上試驗場開啟
/*eslint prefer-object-spread: "error"*/
;
;
;
;
;
// Object.assign with a single argument that is an object literal
;
;
此規則的正確程式碼範例
在線上試驗場開啟
/*eslint prefer-object-spread: "error"*/
({ ...foo });
({ ...baz, foo: 'bar' });
// Any Object.assign call without an object literal as the first argument
Object.assign(foo, { bar: baz });
Object.assign(foo, bar);
Object.assign(foo, { bar, baz });
Object.assign(foo, { ...baz });
何時不該使用
除非您的程式碼庫支援 ES2018,否則不應使用此規則。
版本
此規則在 ESLint v5.0.0-alpha.3 中引入。