Skip to content

Latest commit

 

History

History
52 lines (37 loc) · 827 Bytes

File metadata and controls

52 lines (37 loc) · 827 Bytes

typelab / utils / ArrayOptionalElements

type ArrayOptionalElements<T> = T extends ReadonlyArray<infer Elements> ? _IfNotAnyOrNever<T, _ArrayOptionalElements<T, Elements>> : never;

Get the optional elements from T type.

Type Parameters

Type Parameter Description

T

The Array type to extract optional elements from.

Returns

The elements of T that are optional.

Example

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

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

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

// never
type Never2 = ArrayOptionalElements<any>;