@typedly/array
Version:
A TypeScript type definitions package to handle array-related operations.
17 lines (16 loc) • 672 B
TypeScript
/**
* @description Checks whether the generic type variable `Array` contains the `Element` type.
* @export
* @template {readonly Type[]} Array
* @template {Type} Element
* @template [Type=any]
* @example
* import { Includes } from '@typedly/array';
*
* type Example1 = Includes<[1, 2, 3], 2>; // true
* type Example2 = Includes<[1, 2, 3], 4>; // false
*
* const example1: Example1 = true;
* const example2: Example2 = false;
*/
export type Includes<Array extends readonly Type[], Element extends Type, Type = any> = Array extends [infer First, ...infer Rest] ? First extends Element ? true : Element extends First ? true : Includes<Rest, Element> : false;