Skip to content
← Back to rules

eslint/no-empty-pattern 正しさ

This rule is turned on by default.

何をするか

空のデストラクチャリングパターンを禁止します。

なぜ悪いのか

デストラクチャリングを使用する際、効果のないパターンを作成することがあります。
これは、埋め込まれたオブジェクトのデストラクチャリングパターンの右側に空の波カッコ {} を使用した場合に発生します。たとえば:

JavaScript
// 新しい変数は作成されない
var {a: {}} = foo;

このコードでは、a は単なる場所補助であり、{} の中には作成される変数が期待されています。例えば:

JavaScript
// 変数 b が作成される
var {a: { b }} = foo;

多くの場合、空のオブジェクトパターンは誤りであり、作者はデフォルト値を使用することを意図していた可能性があります。たとえば:

JavaScript
// 変数 a が作成される
var {a = {}} = foo;

これらの2つのパターンの違いは微妙であり、特に問題のある空のパターンがオブジェクトリテラルとまったく同じように見えるため、見過ごされがちです。

間違った コードの例(このルールに違反)

JavaScript
var {} = foo;
var [] = foo;
var {a: {}} = foo;
var {a: []} = foo;
function foo({}) {}
function foo([]) {}
function foo({a: {}}) {}
function foo({a: []}) {}

正しい コードの例(このルールに準拠)

JavaScript
var {a = {}} = foo;
var {a = []} = foo;
function foo({a = {}}) {}
function foo({a = []}) {}

使い方

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

json
{
  "rules": {
    "no-empty-pattern": "error"
  }
}
bash
oxlint --deny no-empty-pattern

参照