@@ -486,3 +486,39 @@ function test1<T extends Record<string, any>, K extends keyof T>(t: T, k: K) {
486486>k : Symbol(k, Decl(keyofAndIndexedAccessErrors.ts, 138, 70))
487487}
488488
489+ // Repro from #28839
490+
491+ function f30<T, K extends keyof T>() {
492+ >f30 : Symbol(f30, Decl(keyofAndIndexedAccessErrors.ts, 142, 1))
493+ >T : Symbol(T, Decl(keyofAndIndexedAccessErrors.ts, 146, 13))
494+ >K : Symbol(K, Decl(keyofAndIndexedAccessErrors.ts, 146, 15))
495+ >T : Symbol(T, Decl(keyofAndIndexedAccessErrors.ts, 146, 13))
496+
497+ let x: Partial<Record<keyof T, string>>[K] = "hello";
498+ >x : Symbol(x, Decl(keyofAndIndexedAccessErrors.ts, 147, 7))
499+ >Partial : Symbol(Partial, Decl(lib.es5.d.ts, --, --))
500+ >Record : Symbol(Record, Decl(lib.es5.d.ts, --, --))
501+ >T : Symbol(T, Decl(keyofAndIndexedAccessErrors.ts, 146, 13))
502+ >K : Symbol(K, Decl(keyofAndIndexedAccessErrors.ts, 146, 15))
503+ }
504+
505+ function f31<T, K extends keyof T>() {
506+ >f31 : Symbol(f31, Decl(keyofAndIndexedAccessErrors.ts, 148, 1))
507+ >T : Symbol(T, Decl(keyofAndIndexedAccessErrors.ts, 150, 13))
508+ >K : Symbol(K, Decl(keyofAndIndexedAccessErrors.ts, 150, 15))
509+ >T : Symbol(T, Decl(keyofAndIndexedAccessErrors.ts, 150, 13))
510+
511+ let x: Partial<Partial<Partial<Partial<Partial<Partial<Partial<Record<keyof T, string>>>>>>>>[K] = "hello";
512+ >x : Symbol(x, Decl(keyofAndIndexedAccessErrors.ts, 151, 7))
513+ >Partial : Symbol(Partial, Decl(lib.es5.d.ts, --, --))
514+ >Partial : Symbol(Partial, Decl(lib.es5.d.ts, --, --))
515+ >Partial : Symbol(Partial, Decl(lib.es5.d.ts, --, --))
516+ >Partial : Symbol(Partial, Decl(lib.es5.d.ts, --, --))
517+ >Partial : Symbol(Partial, Decl(lib.es5.d.ts, --, --))
518+ >Partial : Symbol(Partial, Decl(lib.es5.d.ts, --, --))
519+ >Partial : Symbol(Partial, Decl(lib.es5.d.ts, --, --))
520+ >Record : Symbol(Record, Decl(lib.es5.d.ts, --, --))
521+ >T : Symbol(T, Decl(keyofAndIndexedAccessErrors.ts, 150, 13))
522+ >K : Symbol(K, Decl(keyofAndIndexedAccessErrors.ts, 150, 15))
523+ }
524+
0 commit comments