---
url: /docs/guide/usage/linter/rules/eslint/prefer-object-spread.md
---

### 作用

禁止在 `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 });
```

## 如何使用

## 版本

此规则于 v0.15.9 中添加。

## 参考资料
