Skip to content
← Back to rules

eslint/prefer-destructuring 风格

🛠️ An auto-fix is available for this rule for some violations.

它做了什么

要求从数组和/或对象中进行解构

为什么这是不好的?

随着 JavaScript ES2015 的推出,新增了一种语法,可以从数组索引或对象属性创建变量,称为解构。此规则强制使用解构,而不是通过成员表达式访问属性。

示例

此规则的错误代码示例:

js
// 启用 `array` 时
const foo = array[0];
bar.baz = array[0];
// 启用 `object` 时
const qux = object.qux;
const quux = object["quux"];

此规则的正确代码示例:

js
// 启用 `array` 时
const [foo] = array;
const arr = array[someIndex];
[bar.baz] = array;

// 启用 `object` 时
const { baz } = object;
const obj = object.bar;

配置

此规则接受一个配置对象,包含以下属性:

AssignmentExpression

type: object

default: {"array":true, "object":true}

用于配置赋值表达式中的解构,可独立配置数组和对象。

AssignmentExpression.array

type: boolean

default: true

AssignmentExpression.object

type: boolean

default: true

VariableDeclarator

type: object

default: {"array":true, "object":true}

用于配置变量声明中的解构,可独立配置数组和对象。

VariableDeclarator.array

type: boolean

default: true

VariableDeclarator.object

type: boolean

default: true

enforceForRenamedProperties

type: boolean

default: false

决定对象解构规则是否适用于重命名的变量。

如何使用

要通过配置文件或 CLI 启用此规则,可以使用:

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

参考资料