11.0.0 β€’ Published 21 days ago

@putout/plugin-remove-useless-spread v11.0.0

Weekly downloads
2,953
License
MIT
Repository
github
Last release
21 days ago

@putout/plugin-remove-useless-spread NPM version

Spread syntax can be used when all elements from an object or array need to be included in a list of some kind.

(c) MDN

🐊Putout plugin adds ability to remove useless spread syntax.

Install

npm i @putout/plugin-remove-useless-spread

Rule

{
    "rules": {
        "remove-useless-spread/array": "on",
        "remove-useless-spread/object": "on",
        "remove-useless-spread/nested": "on"
    }
}

array

The thing is [...b] can be used for:

  • copying an array;
  • converting different value type like string to an array.

So better to be more concrete and use slice for copying and Array()/Array.from() for converting to decrease cognitive load. Also sometimes there is no need on any of this operations, and we can drop spread.

❌ Example of incorrect code

for (const a of [...b]) {}

const places = [...getPlaces()];

βœ… Example of correct code

for (const a of b) {}

const places = getPlaces();

// Array constructor creates sparse array
[...Array(5)].map(Number);

object

❌ Example of incorrect code

const a = {
    ...fn(),
};

βœ… Example of correct code

const a = fn();

nested

Checkout in 🐊Putout Editor.

❌ Example of incorrect code

[
    ...[
        ...a,
        ...b,
    ],
    ...x,
];

βœ… Example of correct code

[
    ...a,
    ...b,
    ...x,
];

License

MIT

11.0.0

21 days ago

10.0.0

3 months ago

10.0.1

3 months ago

8.0.1

9 months ago

8.0.0

9 months ago

9.0.0

6 months ago

7.0.0

10 months ago

6.1.0

1 year ago

6.0.0

2 years ago

5.3.0

2 years ago

5.2.0

2 years ago

5.1.0

3 years ago

5.0.1

3 years ago

5.0.0

3 years ago

4.1.0

3 years ago

4.0.0

4 years ago

3.1.1

4 years ago

3.1.0

4 years ago

2.1.1

4 years ago

3.0.0

4 years ago

2.1.0

4 years ago

2.0.0

4 years ago

1.2.0

5 years ago

1.1.0

5 years ago

1.0.0

5 years ago