ESLint 10.6.0 がリリースされた。no-constant-binary-expressioncheckRelationalComparisons オプションが追加され、<<=>>= で両辺がリテラルのとき、結果が常に一定になる比較を報告できる。デフォルトは無効で、有効化すると文字列や数値リテラル同士の比較や、条件が常に真になるループも対象になる。

js
const value = "a" > "b"; // always `false`
js
while (0 <= 0) {
    /* ... */
}

設定では次のように指定する。

js
/*eslint no-constant-binary-expression: ["error", { "checkRelationalComparisons": true }]*/

max-classes-per-filemax-nested-callbacksno-extra-boolean-castno-promise-executor-returnno-throw-literalprefer-exponentiation-operatorprefer-promise-reject-errorsradix も、エッジケースでの正確性と挙動の一貫性が改善されている。

バグ修正では、ローカルで undefinedBooleanPromise を再定義しているコードで誤報していたケースが複数ルールで解消された。max-nested-callbacks は IIFE 内のコールバック判定と、内側の非コールバック関数の除外が直されている。max-classes-per-file の報告範囲、prefer-exponentiation-operator の文頭での不正な autofix も修正された。

#参考文献