ts-type-forge
    Preparing search index...

    Type Alias BoolNot<A>

    BoolNot: TypeEq<A, true> extends true
        ? false
        : TypeEq<A, false> extends true ? true : never

    Performs a logical NOT operation on a boolean literal type A. This is the type-level equivalent of the JavaScript ! operator.

    Type Parameters

    • A extends boolean

      A boolean literal type (true or false).

    The logical negation of A: false if A is true, true if A is false.

    type Result1 = BoolNot<true>;  // false
    type Result2 = BoolNot<false>; // true

    // Useful in conditional types
    type IsDisabled<T> = T extends { enabled: infer E }
    ? E extends boolean
    ? BoolNot<E>
    : never
    : true;

    type Test1 = IsDisabled<{ enabled: true }>; // false
    type Test2 = IsDisabled<{ enabled: false }>; // true