Skip to content
← Back to rules

eslint/prefer-destructuring Style

🛠️ 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

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

如何使用

To enable this rule using the config file or in the CLI, you can use:

json
{
  "rules": {
    "prefer-destructuring": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "prefer-destructuring": "error",
  },
});
bash
oxlint --deny prefer-destructuring

版本

此规则于 v1.10.0 中新增。

参考资料