@@ -540,3 +540,34 @@ let f: Foo2<O, 'x'> = {
540540
541541};
542542
543+ // Repro from #28170
544+
545+ function test1<T, K extends keyof T>(obj: Pick<T, K>) {
546+ >test1 : Symbol(test1, Decl(mappedTypeErrors.ts, 142, 2))
547+ >T : Symbol(T, Decl(mappedTypeErrors.ts, 146, 15))
548+ >K : Symbol(K, Decl(mappedTypeErrors.ts, 146, 17))
549+ >T : Symbol(T, Decl(mappedTypeErrors.ts, 146, 15))
550+ >obj : Symbol(obj, Decl(mappedTypeErrors.ts, 146, 37))
551+ >Pick : Symbol(Pick, Decl(lib.es5.d.ts, --, --))
552+ >T : Symbol(T, Decl(mappedTypeErrors.ts, 146, 15))
553+ >K : Symbol(K, Decl(mappedTypeErrors.ts, 146, 17))
554+
555+ let x = obj.foo; // Error
556+ >x : Symbol(x, Decl(mappedTypeErrors.ts, 147, 7))
557+ >obj : Symbol(obj, Decl(mappedTypeErrors.ts, 146, 37))
558+ }
559+
560+ function test2<T, K extends keyof T>(obj: Record<K, number>) {
561+ >test2 : Symbol(test2, Decl(mappedTypeErrors.ts, 148, 1))
562+ >T : Symbol(T, Decl(mappedTypeErrors.ts, 150, 15))
563+ >K : Symbol(K, Decl(mappedTypeErrors.ts, 150, 17))
564+ >T : Symbol(T, Decl(mappedTypeErrors.ts, 150, 15))
565+ >obj : Symbol(obj, Decl(mappedTypeErrors.ts, 150, 37))
566+ >Record : Symbol(Record, Decl(lib.es5.d.ts, --, --))
567+ >K : Symbol(K, Decl(mappedTypeErrors.ts, 150, 17))
568+
569+ let x = obj.foo; // Error
570+ >x : Symbol(x, Decl(mappedTypeErrors.ts, 151, 7))
571+ >obj : Symbol(obj, Decl(mappedTypeErrors.ts, 150, 37))
572+ }
573+
0 commit comments