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 中引入的。