# Bug Report An indexed access type `{ [P in K]: E }[X]` should be assignable to an instantiation of `E` with `X` substituted for `P`. This issue was originally reported [here](https://github.com/microsoft/TypeScript/pull/47109#issuecomment-1003580482). ### 🔎 Search Terms Mapped type indexed access. ### 🕗 Version & Regression Information Nightly build ### ⏯ Playground Link [Playground link with relevant code](https://www.typescriptlang.org/play?ts=4.6.0-dev.20220110#code/C4TwDgpgBAggTgcwLIEMxQLxQN5RQLigDsBXAWwCMI4AaKCwgZ2DgEsiEoBfAbgChQkKADESRAMYAeANJQIAD2AQiAE0ZQA1hBAB7AGaxEqMAD5MUABTzC8ZGgDa0gLoBKTGYBuO1iv6DoohLqWLiOUOya2vqGdmBOhIFS0ma8fHx6YuLArDpEUHoAjDJyispqkboGtsYmFhlBCZmMdFoghNJ0KIg2Rg7Obth8UMP5TfatThZdCC78XGn1WTl5egBMxQpKquqt0dVotYuMjUEt2u2d3THGjq44QyPiucyjEuZH49pO-COv4lOIWZ8ebpTLZXL5ADMG1K2wqe16pjqTRO4maFQueCu+zAtwGD2GTyIL0WqJkZiwHwmPGGAHpaVAAKJwOA6Wj0EjAKCMAAWOhIABsVEQAORcqgEv4AmZzPhAA) ### 💻 Code ```ts type ArgMap = { a: number, b: string }; type Func<K extends keyof ArgMap> = (x: ArgMap[K]) => void; type Funcs = { [K in keyof ArgMap]: Func<K> }; function f1<K extends keyof ArgMap>(funcs: Funcs, key: K, arg: ArgMap[K]) { funcs[key](arg); } function f2<K extends keyof ArgMap>(funcs: Funcs, key: K, arg: ArgMap[K]) { const func = funcs[key]; // Type Funcs[K] func(arg); } function f3<K extends keyof ArgMap>(funcs: Funcs, key: K, arg: ArgMap[K]) { const func: Func<K> = funcs[key]; // Error, Funcs[K] not assignable to Func<K> func(arg); } ``` ### 🙁 Actual behavior Unexpected error in example above. ### 🙂 Expected behavior No errors in example above.
Activity