@@ -203,15 +203,15 @@ function f2() {
203203
204204 };
205205 let v = unboxify(b);
206- >v : { a: any ; b: any ; c: any ; }
207- >unboxify(b) : { a: any ; b: any ; c: any ; }
206+ >v : { a: number ; b: string ; c: boolean ; }
207+ >unboxify(b) : { a: number ; b: string ; c: boolean ; }
208208>unboxify : <T>(obj: Boxified<T>) => T
209209>b : { a: Box<number>; b: Box<string>; c: Box<boolean>; }
210210
211211 let x: number = v.a;
212212>x : number
213213>v.a : number
214- >v : { a: any ; b: any ; c: any ; }
214+ >v : { a: number ; b: string ; c: boolean ; }
215215>a : number
216216}
217217
@@ -277,11 +277,11 @@ function f4() {
277277
278278 };
279279 b = boxify(unboxify(b));
280- >b = boxify(unboxify(b)) : Boxified<{ a: any ; b: any ; c: any ; }>
280+ >b = boxify(unboxify(b)) : Boxified<{ a: number ; b: string ; c: boolean ; }>
281281>b : { a: Box<number>; b: Box<string>; c: Box<boolean>; }
282- >boxify(unboxify(b)) : Boxified<{ a: any ; b: any ; c: any ; }>
282+ >boxify(unboxify(b)) : Boxified<{ a: number ; b: string ; c: boolean ; }>
283283>boxify : <T>(obj: T) => Boxified<T>
284- >unboxify(b) : { a: any ; b: any ; c: any ; }
284+ >unboxify(b) : { a: number ; b: string ; c: boolean ; }
285285>unboxify : <T>(obj: Boxified<T>) => T
286286>b : { a: Box<number>; b: Box<string>; c: Box<boolean>; }
287287
@@ -338,15 +338,15 @@ function f5(s: string) {
338338
339339 });
340340 let v = unboxify(b);
341- >v : { a: any ; b: any ; c: any ; }
342- >unboxify(b) : { a: any ; b: any ; c: any ; }
341+ >v : { a: string | number | boolean ; b: string | number | boolean ; c: string | number | boolean ; }
342+ >unboxify(b) : { a: string | number | boolean ; b: string | number | boolean ; c: string | number | boolean ; }
343343>unboxify : <T>(obj: Boxified<T>) => T
344344>b : { a: Box<number> | Box<string> | Box<boolean>; b: Box<number> | Box<string> | Box<boolean>; c: Box<number> | Box<string> | Box<boolean>; }
345345
346346 let x: string | number | boolean = v.a;
347347>x : string | number | boolean
348348>v.a : string | number | boolean
349- >v : { a: any ; b: any ; c: any ; }
349+ >v : { a: string | number | boolean ; b: string | number | boolean ; c: string | number | boolean ; }
350350>a : string | number | boolean
351351}
352352
@@ -449,20 +449,20 @@ function f10(foo: Foo) {
449449>Foo : Foo
450450
451451 let x = validate(foo); // { a: number, readonly b: string }
452- >x : { a: any ; readonly b: any ; }
453- >validate(foo) : { a: any ; readonly b: any ; }
452+ >x : { a: number ; readonly b: string ; }
453+ >validate(foo) : { a: number ; readonly b: string ; }
454454>validate : <T>(obj: { [P in keyof T]?: T[P] | undefined; }) => T
455455>foo : Foo
456456
457457 let y = clone(foo); // { a?: number, b: string }
458- >y : { a?: any ; b: any ; }
459- >clone(foo) : { a?: any ; b: any ; }
458+ >y : { a?: number | undefined ; b: string ; }
459+ >clone(foo) : { a?: number | undefined ; b: string ; }
460460>clone : <T>(obj: { readonly [P in keyof T]: T[P]; }) => T
461461>foo : Foo
462462
463463 let z = validateAndClone(foo); // { a: number, b: string }
464- >z : { a: any ; b: any ; }
465- >validateAndClone(foo) : { a: any ; b: any ; }
464+ >z : { a: number ; b: string ; }
465+ >validateAndClone(foo) : { a: number ; b: string ; }
466466>validateAndClone : <T>(obj: { readonly [P in keyof T]?: T[P] | undefined; }) => T
467467>foo : Foo
468468}
@@ -507,8 +507,8 @@ declare function applySpec<T>(obj: Spec<T>): (...args: any[]) => T;
507507
508508// Infers g1: (...args: any[]) => { sum: number, nested: { mul: string } }
509509var g1 = applySpec({
510- >g1 : (...args: any[]) => { sum: any ; nested: any; }
511- >applySpec({ sum: (a: any) => 3, nested: { mul: (b: any) => "n" }}) : (...args: any[]) => { sum: any ; nested: any; }
510+ >g1 : (...args: any[]) => { sum: number ; nested: { mul: any; } ; }
511+ >applySpec({ sum: (a: any) => 3, nested: { mul: (b: any) => "n" }}) : (...args: any[]) => { sum: number ; nested: { mul: any; } ; }
512512>applySpec : <T>(obj: Spec<T>) => (...args: any[]) => T
513513>{ sum: (a: any) => 3, nested: { mul: (b: any) => "n" }} : { sum: (a: any) => number; nested: { mul: (b: any) => string; }; }
514514
@@ -532,8 +532,8 @@ var g1 = applySpec({
532532
533533// Infers g2: (...args: any[]) => { foo: { bar: { baz: boolean } } }
534534var g2 = applySpec({ foo: { bar: { baz: (x: any) => true } } });
535- >g2 : (...args: any[]) => { foo: any; }
536- >applySpec({ foo: { bar: { baz: (x: any) => true } } }) : (...args: any[]) => { foo: any; }
535+ >g2 : (...args: any[]) => { foo: { bar: any; } ; }
536+ >applySpec({ foo: { bar: { baz: (x: any) => true } } }) : (...args: any[]) => { foo: { bar: any; } ; }
537537>applySpec : <T>(obj: Spec<T>) => (...args: any[]) => T
538538>{ foo: { bar: { baz: (x: any) => true } } } : { foo: { bar: { baz: (x: any) => boolean; }; }; }
539539>foo : { bar: { baz: (x: any) => boolean; }; }
0 commit comments