Spec-Zone.ru › ESLint

prefer-object-spread

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

🔧 Исправляемое

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

❄️ Замороженное

Это правило в настоящее время заморожено, и предложения по новым функциям для него не принимаются.

Если Object.assign вызывается с литералом объекта в качестве первого аргумента, это правило требует вместо этого использовать синтаксис распространения свойств объекта. Это правило также предупреждает о случаях, когда вызов Object.assign выполняется с одним аргументом — литералом объекта; в этом случае вызов Object.assign не нужен.

Синтаксис распространения свойств объекта, появившийся в ES2018, — это декларативная альтернатива, которая может работать эффективнее, чем более динамический императивный вариант 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