@@ -71,3 +71,47 @@ new Elem('' as ElChildren); // error
71
71
>Elem : Symbol(Elem, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 8, 83))
72
72
>ElChildren : Symbol(ElChildren, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 0, 0), Decl(conditionalTypeRelaxingConstraintAssignability.ts, 2, 20))
73
73
74
+ // Repro from #31766
75
+
76
+ interface I { a: string }
77
+ >I : Symbol(I, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 22, 27))
78
+ >a : Symbol(I.a, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 26, 13))
79
+
80
+ type DeepPartial<T> =
81
+ >DeepPartial : Symbol(DeepPartial, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 26, 25))
82
+ >T : Symbol(T, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 28, 17))
83
+
84
+ T extends object ? {[K in keyof T]?: DeepPartial<T[K]>} : T;
85
+ >T : Symbol(T, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 28, 17))
86
+ >K : Symbol(K, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 29, 25))
87
+ >T : Symbol(T, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 28, 17))
88
+ >DeepPartial : Symbol(DeepPartial, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 26, 25))
89
+ >T : Symbol(T, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 28, 17))
90
+ >K : Symbol(K, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 29, 25))
91
+ >T : Symbol(T, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 28, 17))
92
+
93
+ declare function f<T>(t: T, partial: DeepPartial<T>): T;
94
+ >f : Symbol(f, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 29, 64))
95
+ >T : Symbol(T, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 31, 19))
96
+ >t : Symbol(t, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 31, 22))
97
+ >T : Symbol(T, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 31, 19))
98
+ >partial : Symbol(partial, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 31, 27))
99
+ >DeepPartial : Symbol(DeepPartial, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 26, 25))
100
+ >T : Symbol(T, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 31, 19))
101
+ >T : Symbol(T, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 31, 19))
102
+
103
+ function g(p1: I, p2: Partial<I>): I {
104
+ >g : Symbol(g, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 31, 56))
105
+ >p1 : Symbol(p1, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 33, 11))
106
+ >I : Symbol(I, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 22, 27))
107
+ >p2 : Symbol(p2, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 33, 17))
108
+ >Partial : Symbol(Partial, Decl(lib.es5.d.ts, --, --))
109
+ >I : Symbol(I, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 22, 27))
110
+ >I : Symbol(I, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 22, 27))
111
+
112
+ return f(p1, p2);
113
+ >f : Symbol(f, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 29, 64))
114
+ >p1 : Symbol(p1, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 33, 11))
115
+ >p2 : Symbol(p2, Decl(conditionalTypeRelaxingConstraintAssignability.ts, 33, 17))
116
+ }
117
+
0 commit comments