Skip to content
← Back to rules

eslint/prefer-destructuring スタイル

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

何をするか

配列および/またはオブジェクトからの構造分解(destructuring)を使用することを要求する

なぜこれは悪いのか

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

参照