Skip to content

Latest commit

 

History

History
52 lines (37 loc) · 817 Bytes

File metadata and controls

52 lines (37 loc) · 817 Bytes

typelab / utils / ArrayRequiredElements

type ArrayRequiredElements<T> = T extends ReadonlyArray<infer Elements> ? _IfNotAnyOrNever<T, _ArrayRequiredElements<T, Elements>> : never;

Get the required elements from T type.

Type Parameters

Type Parameter Description

T

The Array type to extract required elements from.

Returns

The elements of T that are required.

Example

// 0 | 1
type Result1 = ArrayRequiredElements<[0, 1, 2?]>;

// string | undefined
type Result2 = ArrayRequiredElements<(string | undefined)[]>;

// never
type Never1 = ArrayRequiredElements<[0?, 1?, 2?]>;

// never
type Never2 = ArrayRequiredElements<any>;