23 lines
561 B
Plaintext
23 lines
561 B
Plaintext
import type {IsEqual} from './internal';
|
|
|
|
/**
|
|
Returns a boolean for whether the given array includes the given item.
|
|
|
|
This can be useful if another type wants to make a decision based on whether the array includes that item.
|
|
|
|
@example
|
|
```
|
|
import type {Includes} from 'type-fest';
|
|
|
|
type hasRed<array extends any[]> = Includes<array, 'red'>;
|
|
```
|
|
|
|
@category Array
|
|
*/
|
|
export type Includes<Value extends readonly any[], Item> =
|
|
Value extends readonly [Value[0], ...infer rest]
|
|
? IsEqual<Value[0], Item> extends true
|
|
? true
|
|
: Includes<rest, Item>
|
|
: false;
|