Closed
Description
Bug Report
π Search Terms
Variadic tuple mapped type keyof
π Version & Regression Information
- This is the behavior in every version I tried
β― Playground Link
Playground link with relevant code
π» Code
type Keys<O extends unknown[]> = { [K in keyof O]: K };
type A = Keys<[string, ...string[]]>;
type B = Keys<[string, ...string[], number]>;
π Actual behavior
A
and B
both have the variadic part typed as ..."1"[]
, which is wrong. B
is further wrong because the number
part becomes "2"
, while in practice it would rarely be "2"
.
π Expected behavior
A
should be ["0", ...number[]]
; B
should be ["0", ...number[], number]