Closed
Description
TypeScript Version: 3.1.0-dev.20180802
Search Terms:
Mapped tuple type generic infer array
Code
type Element<T> = T extends Array<infer U> ? U : never;
type Mapped<T> = { [K in keyof T]: T[K] };
type F<T> = Element<Mapped<T>>;
type R1 = F<[string, number, boolean]>; // never
type R2 = Element<Mapped<[string, number, boolean]>>; // string | number | boolean
Expected behavior:
The type of R1
should be string | number | boolean
.
Actual behavior:
The type of R1
is never
.