unicorn/no-useless-spread Correctness 
What it does 
Disallows using spread syntax in following, unnecessary cases:
- Spread an array literal as elements of an array literal
- Spread an array literal as arguments of a call or a newcall
- Spread an object literal as properties of an object literal
- Use spread syntax to clone an array created inline
Why is this bad? 
The following builtins accept an iterable, so it's unnecessary to convert the iterable to an array:
- Mapconstructor
- WeakMapconstructor
- Setconstructor
- WeakSetconstructor
- TypedArrayconstructor
- Array.from(…)
- TypedArray.from(…)
- Promise.{all,allSettled,any,race}(…)
- Object.fromEntries(…)
The for…of loop can iterate over any iterable object not just array, so it's unnecessary to convert the iterable to an array.
The yield* can delegate to another iterable, so it's unnecessary to convert the iterable to an array.
Examples 
Examples of incorrect code for this rule:
javascript
const array = [firstElement, ...[secondElement], thirdElement];
await Promise.all([...iterable]);
for (const foo of [...set]);
function* foo() {
  yield* [...anotherGenerator()];
}
function foo(bar) {
  return [...bar.map(x => x * 2)];
}Examples of correct code for this rule:
javascript
const array = [firstElement, secondElement, thirdElement];
await Promise.all(iterable);
for (const foo of set);
function* foo() {
  yield* anotherGenerator();
}
function foo(bar) {
  return bar.map(x => x * 2);
}How to use 
To enable this rule in the CLI or using the config file, you can use:
bash
oxlint --deny unicorn/no-useless-spreadjson
{
  "rules": {
    "unicorn/no-useless-spread": "error"
  }
}