Skip to content
← Back to rules

oxc/bad-object-literal-comparison 正しさ

This rule is turned on by default.

何を検査するか

オブジェクトリテラルと配列リテラルの比較を検査します。

なぜ問題か

変数をオブジェクトリテラルや配列リテラルと比較すると、常に false を返すためです。オブジェクトリテラルや配列リテラルは互いに等しくならないからです。

空かどうかを確認したい場合は、Object.entries()Object.keys() およびそれらの長さを使用してください。

このルールに違反する 誤った コードの例:

javascript
if (x === {}) {
}
if (arr !== []) {
}

このルールに準拠する 正しい コードの例:

javascript
if (typeof x === "object" && Object.keys(x).length === 0) {
}
if (Array.isArray(x) && x.length === 0) {
}

使い方

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

json
{
  "rules": {
    "oxc/bad-object-literal-comparison": "error"
  }
}
bash
oxlint --deny oxc/bad-object-literal-comparison

参照