UNPKG

692 BTypeScriptView Raw
1export declare type If<Boolean extends boolean, WhenTrue, WhenFalse> = Boolean extends true ? WhenTrue : WhenFalse;
2export declare type Not<X extends boolean> = X extends true ? false : true;
3export declare type And<A extends boolean, B extends boolean> = LogicalTable<A, B, true, false, false, false>;
4export declare type Or<A extends boolean, B extends boolean> = LogicalTable<A, B, true, true, true, false>;
5export declare type Xor<A extends boolean, B extends boolean> = LogicalTable<A, B, false, true, true, false>;
6declare 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;
7export {};