Skip to content

Latest commit

 

History

History
78 lines (54 loc) · 1.29 KB

File metadata and controls

78 lines (54 loc) · 1.29 KB

typelab / utils / ArrayRequiredIndexes

type ArrayRequiredIndexes<T, IncludeString> = T extends ReadonlyArray ? _IfNotAnyOrNever<T, _ArrayRequiredIndexes<T> extends infer IndexesNumber ? number extends IndexesNumber ? IndexesNumber : IsTrue<IncludeString> extends true ? IndexesNumber | ParseString<IndexesNumber> : IndexesNumber : never> : never;

Get the required indexes from T type.

Type Parameters

Type Parameter Default type Description

T

The Array type to extract required indexes from.

IncludeString extends boolean

false

Whether to include string keys (true) or only numeric keys (false). Defaults to false.

Returns

The indexes of T that are required.

Example

// 0 | 1
type Result1 = ArrayRequiredIndexes<[string, string, string?]>;

// 0 | 1 | "0" | "1"
type Result2 = ArrayRequiredIndexes<[string, string, string?], true>;

// number
type Result3 = ArrayRequiredIndexes<(string | undefined)[]>;

// never
type Never1 = ArrayRequiredIndexes<[string?, string?, string?]>;

// never
type Never2 = ArrayRequiredIndexes<any>;