Skip to content
← Back to rules

eslint/prefer-object-spread スタイル

An auto-fix is available for this rule.

機能

オブジェクトリテラルを最初の引数として Object.assign を使用するのを禁止し、代わりにオブジェクトスプレッド構文を使用することを推奨します

なぜ問題なのか?

Object.assign がオブジェクトリテラルを最初の引数として呼び出された場合、このルールではオブジェクトスプレッド構文の使用が要求されます。また、オブジェクトリテラルを唯一の引数として使用して Object.assign 呼び出しを行った場合も警告が出ます。この場合は Object.assign の呼び出し自体が不要です。

このルールに対して不正なコードの例:

js
Object.assign({}, foo);

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

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

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

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

// オブジェクトリテラルを唯一の引数として持つ Object.assign
Object.assign({});

Object.assign({ foo: bar });

このルールに対して正しいコードの例:

js
({ ...foo });

({ ...baz, foo: "bar" });

// 最初の引数にオブジェクトリテラルを持たない任意の Object.assign 呼び出し
Object.assign(foo, { bar: baz });

Object.assign(foo, bar);

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

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

使用方法

設定ファイルまたは CLI でこのルールを有効化するには、以下のように使用できます:

json
{
  "rules": {
    "prefer-object-spread": "error"
  }
}
bash
oxlint --deny prefer-object-spread

参照