Spec-Zone.ru › ESLint

prefer-object-spread

Запретить использование Object.assign с объектной литеральной записью в качестве первого аргумента и предпочесть использование оператора spread для объектов

🔧 Исправимые

Некоторые проблемы, выявленные этой правилами, автоматически исправляются с помощью параметра --fix командной строки

Когда Object.assign вызывается с объектной литеральной записью в качестве первого аргумента, данное правило требует использования синтаксиса spread для объектов. Это правило также предупреждает в случаях, когда Object.assign вызов осуществляется с единственным аргументом, который является объектной литеральной записью, в таком случае Object.assign вызов не требуется.

Введенный в ES2018, синтаксис spread для объектов — декларативная альтернатива, которая может работать быстрее, чем более динамичный и императивный Object.assign.

Детали правила

Примеры неправильного кода для данного правила:

Открыть в Playground
/*eslint prefer-object-spread: "error"*/

Object.assign({}, foo);

Object.assign({}, {foo: 'bar'});

Object.assign({ foo: 'bar'}, baz);

Object.assign({}, baz, { foo: 'bar' });

Object.assign({}, { ...baz });

// Object.assign with a single argument that is an object literal
Object.assign({});

Object.assign({ foo: bar });

Примеры правильного кода для данного правила:

Открыть в 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.

Ресурсы

  • Исходный код правила
  • Исходный код тестов

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/prefer-object-spread

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API