1 | export declare type If<Boolean extends boolean, WhenTrue, WhenFalse> = Boolean extends true ? WhenTrue : WhenFalse;
|
2 | export declare type Not<X extends boolean> = X extends true ? false : true;
|
3 | export declare type And<A extends boolean, B extends boolean> = LogicalTable<A, B, true, false, false, false>;
|
4 | export declare type Or<A extends boolean, B extends boolean> = LogicalTable<A, B, true, true, true, false>;
|
5 | export declare type Xor<A extends boolean, B extends boolean> = LogicalTable<A, B, false, true, true, false>;
|
6 | declare type LogicalTable<A extends boolean, B extends boolean, AB, AnB, nAB, nAnB> = A extends true ? B extends true ? AB : AnB : B extends true ? nAB : nAnB;
|
7 | export {};
|