// @strictNullChecks: true // @declaration: true // Repros from #17238 type AB = { a: 'a' b: 'a' }; type T1 = { [key in AB[K]]: true }; type T2 = T1[K]; // Error type R = AB[keyof AB]; // "a" type T3 = { [key in R]: true }; type T4 = T3[K] // Error type T5 = {[key in AB[S]]: true}[S]; // Error type T6 = {[key in AB[S]]: true}[L]; // Error type T7 = {[key in AB[S]]: true}[L];