1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
=== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectLiteralArgs.ts ===
function foo<T>(x: { bar: T; baz: T }) {
>foo : Symbol(foo, Decl(genericCallWithObjectLiteralArgs.ts, 0, 0))
>T : Symbol(T, Decl(genericCallWithObjectLiteralArgs.ts, 0, 13))
>x : Symbol(x, Decl(genericCallWithObjectLiteralArgs.ts, 0, 16))
>bar : Symbol(bar, Decl(genericCallWithObjectLiteralArgs.ts, 0, 20))
>T : Symbol(T, Decl(genericCallWithObjectLiteralArgs.ts, 0, 13))
>baz : Symbol(baz, Decl(genericCallWithObjectLiteralArgs.ts, 0, 28))
>T : Symbol(T, Decl(genericCallWithObjectLiteralArgs.ts, 0, 13))
return x;
>x : Symbol(x, Decl(genericCallWithObjectLiteralArgs.ts, 0, 16))
}
var r = foo({ bar: 1, baz: '' }); // error
>r : Symbol(r, Decl(genericCallWithObjectLiteralArgs.ts, 4, 3))
>foo : Symbol(foo, Decl(genericCallWithObjectLiteralArgs.ts, 0, 0))
>bar : Symbol(bar, Decl(genericCallWithObjectLiteralArgs.ts, 4, 13))
>baz : Symbol(baz, Decl(genericCallWithObjectLiteralArgs.ts, 4, 21))
var r2 = foo({ bar: 1, baz: 1 }); // T = number
>r2 : Symbol(r2, Decl(genericCallWithObjectLiteralArgs.ts, 5, 3))
>foo : Symbol(foo, Decl(genericCallWithObjectLiteralArgs.ts, 0, 0))
>bar : Symbol(bar, Decl(genericCallWithObjectLiteralArgs.ts, 5, 14))
>baz : Symbol(baz, Decl(genericCallWithObjectLiteralArgs.ts, 5, 22))
var r3 = foo({ bar: foo, baz: foo }); // T = typeof foo
>r3 : Symbol(r3, Decl(genericCallWithObjectLiteralArgs.ts, 6, 3))
>foo : Symbol(foo, Decl(genericCallWithObjectLiteralArgs.ts, 0, 0))
>bar : Symbol(bar, Decl(genericCallWithObjectLiteralArgs.ts, 6, 14))
>foo : Symbol(foo, Decl(genericCallWithObjectLiteralArgs.ts, 0, 0))
>baz : Symbol(baz, Decl(genericCallWithObjectLiteralArgs.ts, 6, 24))
>foo : Symbol(foo, Decl(genericCallWithObjectLiteralArgs.ts, 0, 0))
var r4 = foo<Object>({ bar: 1, baz: '' }); // T = Object
>r4 : Symbol(r4, Decl(genericCallWithObjectLiteralArgs.ts, 7, 3))
>foo : Symbol(foo, Decl(genericCallWithObjectLiteralArgs.ts, 0, 0))
>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
>bar : Symbol(bar, Decl(genericCallWithObjectLiteralArgs.ts, 7, 22))
>baz : Symbol(baz, Decl(genericCallWithObjectLiteralArgs.ts, 7, 30))
|