typelab / utils / ArrayOptionalIndexes
type ArrayOptionalIndexes<T, IncludeString> = T extends ReadonlyArray ? _IfNotAnyOrNever<T, _ArrayOptionalIndexes<T> extends infer IndexesNumber ? number extends IndexesNumber ? IndexesNumber : IsTrue<IncludeString> extends true ? IndexesNumber | ParseString<IndexesNumber> : IndexesNumber : never> : never;Get the optional indexes from T type.
| Type Parameter | Default type | Description |
|---|---|---|
|
|
‐ |
The |
|
|
|
Whether to include string keys ( |
The indexes of T that are optional.
// 1 | 2
type Result1 = ArrayOptionalIndexes<[string, string?, string?]>;
// 1 | 2 | "1" | "2"
type Result2 = ArrayOptionalIndexes<[string, string?, string?], true>;
// number
type Result3 = ArrayOptionalIndexes<(string | undefined)[]>;
// never
type Never1 = ArrayOptionalIndexes<[string, string, string]>;
// never
type Never2 = ArrayOptionalIndexes<any>;