type-plus
Version:
Provides additional types for TypeScript.
20 lines (16 loc) • 519 B
text/typescript
export type And<A extends boolean, B extends boolean, Then = true, Else = false> = A extends true
? B extends true
? Then
: Else
: Else
export type Or<A extends boolean, B extends boolean, Then = true, Else = false> = A extends true
? Then
: B extends true
? Then
: Else
export type Not<X extends boolean, Then = true, Else = false> = X extends true ? Else : Then
export type Xor<A extends boolean, B extends boolean, Then = true, Else = false> = A extends Then
? Not<B>
: B extends true
? Then
: Else