A boolean literal type (true or 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
Performs a logical NOT operation on a boolean literal type
A. This is the type-level equivalent of the JavaScript!operator.