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 Parameter | Default type | Description |
|---|---|---|
|
|
‐ |
The |
|
|
|
Whether to include string keys ( |
The indexes of T that are required.
// 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>;