メインコンテンツにスキップ

no-unnecessary-boolean-literal-compare

ブールリテラルに対する不要な等価比較を禁止します。

🔒

拡張 「plugin:@typescript-eslint/」strict-type-checked" ESLint 設定 でこのルールを有効にします。

🔧

このルールによって報告される問題の一部は、 --fix ESLint コマンドラインオプション.

で自動的に修正できます。

💭 このルールは 型情報

を実行するために必要です。

ブール値をブールリテラルと比較するのは不要です。それらの比較は同じブール値になります。ブール値を直接使用するか、単項否定(!value)を使用する方が、より簡潔で明確です。

このルールは、ブールリテラルとの不要な比較を含めないようにします。比較は、boolean 型のみを持つ変数に対してブールリテラルをチェックする場合、不要とみなされます。型がブール値のユニオン(string | booleanSomeObject | booleanなど)である場合、比較は不要とみなされません。
module.exports = {
"rules": {
"@typescript-eslint/no-unnecessary-boolean-literal-compare": "error"
}
};

.eslintrc.cjs

プレイグラウンドでこのルールを試す ↗

注意

declare const someCondition: boolean;
if (someCondition === true) {
}
✅ 正しい

プレイグラウンドで開く

オプション

type Options = [
{
/** Whether to allow comparisons between nullable boolean variables and `false`. */
allowComparingNullableBooleansToFalse?: boolean;
/** Whether to allow comparisons between nullable boolean variables and `true`. */
allowComparingNullableBooleansToTrue?: boolean;
},
];

const defaultOptions: Options = [
{
allowComparingNullableBooleansToTrue: true,
allowComparingNullableBooleansToFalse: true,
},
];

このルールは、次のオプションを受け入れます

このルールは常に、ブール変数とブールリテラルの間の比較をチェックします。デフォルトでは、nullable ブール変数とブールリテラルの間の比較はチェックされません。

allowComparingNullableBooleansToTrue

declare const someUndefinedCondition: boolean | undefined;
if (someUndefinedCondition === true) {
}

declare const someNullCondition: boolean | null;
if (someNullCondition !== true) {
}
✅ 正しい

{ allowComparingNullableBooleansToTrue: false } を使用したこのルールのコード例

allowComparingNullableBooleansToFalse

declare const someUndefinedCondition: boolean | undefined;
if (someUndefinedCondition === false) {
}

declare const someNullCondition: boolean | null;
if (someNullCondition !== false) {
}
✅ 正しい

{ allowComparingNullableBooleansToFalse: false } を使用したこのルールのコード例

フィクサー比較フィクサー出力
備考booleanVar === true
booleanVarbooleanVar !== true
!booleanVarbooleanVar !== true
booleanVar === falsebooleanVar === true
booleanVar !== falsenullableBooleanVar === truenullableBooleanVar
allowComparingNullableBooleansToTrue オプションが false の場合にのみチェック/修正されますnullableBooleanVar !== truenullableBooleanVar
!nullableBooleanVarnullableBooleanVar === false!(nullableBooleanVar ?? true)
allowComparingNullableBooleansToFalse オプションが false の場合にのみチェック/修正されますnullableBooleanVar !== false!(nullableBooleanVar ?? true)

nullableBooleanVar ?? true

使用しない場合


strictNullChecks が無効になっている場合は、このルールを使用しないでください。ESLint は、falseundefined または null の値を区別できません。これにより、自動修正を使用すると、意図しないコード変更が発生する可能性があります。

型チェックされたリントルールは、従来のリントルールよりも強力ですが、型チェックされたリンティングの設定も必要です。型チェックされたルールを有効にした後にパフォーマンスの低下が発生した場合は、パフォーマンスのトラブルシューティングを参照してください。