ts-type-forge
    Preparing search index...

    Type Alias BoolAnd<A, B>

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

    Performs a logical AND operation on two boolean literal types A and B. This is the type-level equivalent of the JavaScript && operator. Returns true only when both operands are 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 both A and B are true, false otherwise.

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

    // Useful for combining conditions
    type HasBothFlags<T> = T extends { flagA: infer A, flagB: infer B }
    ? A extends boolean
    ? B extends boolean
    ? BoolAnd<A, B>
    : false
    : false
    : false;