Version: 0.1.00.2.00.3.00.3.10.4.00.4.10.5.00.5.10.5.20.6.00.7.00.7.10.8.00.8.10.9.00.10.00.11.00.12.00.13.00.13.10.14.00.15.00.15.10.16.00.17.00.18.00.18.10.19.00.20.00.20.10.20.20.21.00.21.10.21.20.21.31.0.01.0.11.0.21.1.01.1.11.1.21.1.31.2.01.2.11.2.21.2.31.3.01.4.02.0.02.1.02.2.02.3.02.3.12.3.22.3.32.3.42.4.02.5.02.5.12.5.22.5.32.5.42.6.02.7.02.8.02.9.02.10.02.11.02.11.12.11.22.12.02.12.12.12.22.13.02.13.12.14.02.15.02.15.12.16.02.17.02.18.02.18.12.19.03.0.03.1.03.2.03.3.03.4.03.5.03.5.13.5.23.5.33.5.43.5.53.5.63.5.73.6.03.6.13.7.03.7.13.7.23.8.03.9.03.10.03.11.03.11.13.12.03.13.03.13.14.0.04.1.04.2.04.3.04.3.14.3.24.3.34.4.04.5.04.6.04.7.04.7.14.8.04.8.14.8.24.8.34.9.04.10.04.10.14.10.24.10.34.11.04.11.14.12.04.13.04.13.14.14.04.15.04.16.04.17.04.18.04.18.14.18.24.18.34.19.04.20.04.20.14.21.04.22.04.22.14.23.04.24.04.25.04.26.04.26.1
import type {IsEqual} from './is-equal';
/**
Returns a boolean for whether either of two given types are true.
Use-case: Constructing complex conditional types where multiple conditions must be satisfied.
@example
```
import type {Or} from 'type-fest';
Or<true, false>;
//=> true
Or<false, false>;
//=> false
@see {@link And}
*/
export type Or<A extends boolean, B extends boolean> = [A, B][number] extends false
? false
: true extends [IsEqual<A, true>, IsEqual<B, true>][number]
? true
: never;