prefer-object-spread
Запретить использование Object.assign с объектной литеральной записью в качестве первого аргумента и предпочесть использование оператора spread для объектов
Некоторые проблемы, выявленные этой правилами, автоматически исправляются с помощью параметра --fix командной строки
Когда Object.assign вызывается с объектной литеральной записью в качестве первого аргумента, данное правило требует использования синтаксиса spread для объектов. Это правило также предупреждает в случаях, когда Object.assign вызов осуществляется с единственным аргументом, который является объектной литеральной записью, в таком случае Object.assign вызов не требуется.
Введенный в ES2018, синтаксис spread для объектов — декларативная альтернатива, которая может работать быстрее, чем более динамичный и императивный 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.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/prefer-object-spread