JSPM

eslint-plugin-prefer-object-spread

1.1.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 26555
  • Score
    100M100P100Q159008F
  • License MIT

ESLint rule for suggesting that object spread properties be used instead of Object.assign().

Package Exports

  • eslint-plugin-prefer-object-spread

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (eslint-plugin-prefer-object-spread) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

build status test coverage npm

eslint-plugin-prefer-object-spread

ESLint rule for suggesting that object spread properties be used instead of Object.assign().

Installation

Install ESLint and eslint-plugin-prefer-object-spread:

$ npm install --save-dev eslint eslint-plugin-prefer-object-spread

Usage

Add prefer-object-spread to the plugins section of your .eslintrc configuration file, and configure the rule under the rules section.

{
  "plugins": [
    "prefer-object-spread"
  ],
  "rules": {
    "prefer-object-spread/prefer-object-spread": 2
  }
}

This rule suggests that object spread properties be used instead of Object.assign(). The rule is only applied when Object.assign() is used for cloning; not when it is used to extend an existing object. i.e., it applies when the first argument to Object.assign() is an object literal. This is because spread properties only iterate over own properties.

When using this rule the following patterns are considered problems:

var a = Object.assign({}, foo); // error Use a spread property instead of Object.assign().

var b = Object.assign({ c: 1 }, bar); // error Use a spread property instead of Object.assign().

The following patterns are considered okay:

var a = { ...foo };

var b = { c: 1, ...bar };

Object.assign(b, { d: 2 });