types-kit.or.md
September 4, 2023 ยท View on GitHub
Or type
Or operator for types.
Signature:
export type Or<A extends readonly unknown[]> = If<
IsTuple<A>,
A extends readonly [infer Current, ...infer Rest]
? If<Current, true, Or<Rest>>
: A extends [...infer Rest, infer Current]
? If<Current, true, Or<Rest>>
: never,
IsTruthy<ArrayItem<A>>
>
References: If, IsTuple, Or, IsTruthy, ArrayItem
Example
// Expect: true
type Foo = Or<[1, 2, false]>
// Expect: false
type Bar = Or<[null, undefined, 0]>