type-samurai
Version:
Advanced utility types for Typescript
16 lines (15 loc) • 352 B
TypeScript
/**
* Returns the type of the element of the passed array argument
* @example
* ```ts
* // string
* type Case1 = ArrayElementType<string[]>
* // "a" | "b"
* type Case1 = ArrayElementType<readonly ("a" | "b")[]>
* ```
*/
export type ArrayElementType<T extends readonly unknown[]> = T extends Readonly<
Array<infer Item>
>
? Item
: never;