Skip to content
← Back to rules

oxc/const-comparisons 正しさ

This rule is turned on by default.

何をするのか

定数との冗長または論理的に不可能な比較をチェックします。これには以下が含まれます:

  • 定数に対する無効な二重比較。
  • 定数を含む不可能な比較。
  • 両方のオペランドが同じ場合の冗長な比較(例:a < a)。

なぜ悪いのか

このような比較は、プログラム内の論理に混乱や誤りをもたらす可能性があります。多くの場合:

  • 比較のうち片方しか結果に影響を与えないため、プログラマが比較演算子を逆にしたり、誤った変数を使用した可能性があることを示唆しています。
  • a < aa >= a といった比較はそれぞれ常に偽または真になるため、論理が冗長であり、誤解を招く可能性があります。

このルールに関して 不適切 なコードの例:

javascript
status_code <= 400 && status_code > 500;
status_code < 200 && status_code <= 299;
status_code > 500 && status_code >= 500;
a < a; // 常に偽
a >= a; // 常に真

このルールに関して 適切 なコードの例:

javascript
status_code >= 400 && status_code < 500;
500 <= status_code && 600 > status_code;
500 <= status_code && status_code <= 600;
a < b;
a <= b;

使用方法

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

json
{
  "rules": {
    "oxc/const-comparisons": "error"
  }
}
bash
oxlint --deny oxc/const-comparisons

参照