ts-type-forge
    Preparing search index...

    Type Alias BoolOr<A, B>

    BoolOr: TypeEq<A, true> extends true
        ? TypeEq<B, true> extends true
            ? true
            : TypeEq<B, false> extends true ? true : never
        : TypeEq<A, false> extends true
            ? TypeEq<B, true> extends true
                ? true
                : TypeEq<B, false> extends true ? false : never
            : never

    Performs a logical OR operation on two boolean literal types A and B. This is the type-level equivalent of the JavaScript || operator. Returns true when at least one operand is true.

    Type Parameters

    • A extends boolean

      The first boolean literal type (true or false).

    • B extends boolean

      The second boolean literal type (true or false).

    true if either A or B (or both) is true, false otherwise.

    type T_T = BoolOr<true, true>;   // true
    type T_F = BoolOr<true, false>; // true
    type F_T = BoolOr<false, true>; // true
    type F_F = BoolOr<false, false>; // false

    // Useful for fallback conditions
    type HasAnyFlag<T> = T extends { flagA: infer A, flagB: infer B }
    ? A extends boolean
    ? B extends boolean
    ? BoolOr<A, B>
    : A
    : B extends boolean
    ? B
    : false
    : false;