prefer-object-spread
禁止使用以物件實字作為第一個參數的 Object.assign
,並建議改用物件展開語法
當 Object.assign
被呼叫時,若使用物件實字作為第一個參數,此規則要求改用物件展開語法。此規則也會警告當 Object.assign
呼叫只使用一個物件實字參數的情況,在這種情況下,不需要 Object.assign
呼叫。
物件展開語法在 ES2018 中引入,是一種宣告式的替代方案,效能可能比更動態、命令式的 Object.assign
更好。
規則詳情
此規則的錯誤程式碼範例
在 Playground 中開啟
/*eslint prefer-object-spread: "error"*/
;
;
;
;
;
// Object.assign with a single argument that is an object literal
;
;
此規則的正確程式碼範例
在 Playground 中開啟
/*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 中引入。