# Bug Report Cannot use mapped types to create new mapped types. I have no idea why this would happen because the types are computed correctly. ### 🔎 Search Terms - mapped types ### 🕗 Version & Regression Information This changed between version 4.5.5 and 4.6.2. ### ⏯ Playground Link [Playground link with relevant code](https://www.typescriptlang.org/play?target=7&ts=4.6.2#code/GYVwdgxgLglg9mABAWwIYGsCmBhOyAOANplJgDJxzoj4Cyq++MYA5gDwAqimAHqWABMAzogBKmVAISEAngEEATgtQy2qMDIB8AGkRyoUBdz6ZBIrDLjBEHANpgQyAEaYFAXU0AKALAAoRAGIcPhCAFw22n6BiKgGCuH6hpG+AJThAN5+AJC2AJKkyIjMNvaOLu6oIvmYyLaJ7m7h1cgA3H4AvoiZ-oEKJCAKSADyTgBWmNAAdMAKeACiYIYwmEI+PdEBwUKTaPiewYgAvJqItsG2sYZuusFuMSIQCEJQKcnRKW2+7X5+j2DPejIZAA+gAhOSiADKR1O2XSiDAqGQmHCAHJUKj2sksulEci0U5Mck7pVEH9np9yVBEODRMCyEMhgBpACqAAUYWgsLgCMRSBQqDR6IxmCxPHIgWCIZDdKi8ZhUSk-FAZPhMDTUAoBdR8DCVWqrDSIfTGay2Z9lar1aDUAAvGHw2xMopICyGm1ayg6xoaz2C-BOty2OVIhVuFqIdotIA) ### 💻 Code ```ts function makeCompleteLookupMapping<T extends ReadonlyArray<any>, Attr extends keyof T[number]>( ops: T, attr: Attr, ): { [Item in T[number]as Item[Attr]]: Item; } { return Object.fromEntries( ops.map(op => [op[attr], op] as const), ); } const ALL_BARS = [ { name: 'a'}, {name: 'b'}, ] as const; const BAR_LOOKUP = makeCompleteLookupMapping(ALL_BARS, 'name') type BarLookup = typeof BAR_LOOKUP; type Baz = { [K in keyof BarLookup]: BarLookup[K]['name']; }; ``` ### 🙁 Actual behavior I cannot use `name` to index `BarLookup[K]` where `K` is a keyof `BarLookup`. ### 🙂 Expected behavior I expect type `Baz` to be `{a: 'a', b:'b'}`.