typelab / utils / ArrayRequired
type ArrayRequired<T, Index, IncludeUndefined> = T extends ReadonlyArray<infer Element> ? _IfNotAnyOrNever<T, _IfNotAnyOrNever<Index, _ArrayRequired<T, Index, Element, IncludeUndefined>>> : never;Extended TypeScript `Required` to handle Array.
| Type Parameter | Default type | Description |
|---|---|---|
|
|
‐ |
The original |
|
|
|
The index of |
|
|
|
Include undefined type from |
An Array type with the specified K set as required.
type Result1 = ArrayRequired<[string?, string?]>; // [string, string]
type Result2 = ArrayRequired<[string?, string?], 0>; // [string, string?]
type Result3 = ArrayRequired<[string?, string?], 0, true>; // [string | undefined, string?]
type Never1 = ArrayRequired<[string?, string?], any>; // never
type Never2 = ArrayRequired<any, 1>; // never