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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
=== tests/cases/compiler/genericCallWithObjectLiteralArguments1.ts ===
function foo<T>(n: { x: T; y: T }, m: T) { return m; }
>foo : <T>(n: { x: T; y: T;}, m: T) => T
>n : { x: T; y: T; }
>x : T
>y : T
>m : T
>m : T
// these are all errors
var x = foo({ x: 3, y: "" }, 4);
>x : number
>foo({ x: 3, y: "" }, 4) : number
>foo : <T>(n: { x: T; y: T; }, m: T) => T
>{ x: 3, y: "" } : { x: number; y: string; }
>x : number
>3 : 3
>y : string
>"" : ""
>4 : 4
var x2 = foo<number>({ x: 3, y: "" }, 4);
>x2 : number
>foo<number>({ x: 3, y: "" }, 4) : number
>foo : <T>(n: { x: T; y: T; }, m: T) => T
>{ x: 3, y: "" } : { x: number; y: string; }
>x : number
>3 : 3
>y : string
>"" : ""
>4 : 4
var x3 = foo<string>({ x: 3, y: "" }, 4);
>x3 : string
>foo<string>({ x: 3, y: "" }, 4) : string
>foo : <T>(n: { x: T; y: T; }, m: T) => T
>{ x: 3, y: "" } : { x: number; y: string; }
>x : number
>3 : 3
>y : string
>"" : ""
>4 : 4
var x4 = foo<number>({ x: "", y: 4 }, "");
>x4 : number
>foo<number>({ x: "", y: 4 }, "") : number
>foo : <T>(n: { x: T; y: T; }, m: T) => T
>{ x: "", y: 4 } : { x: string; y: number; }
>x : string
>"" : ""
>y : number
>4 : 4
>"" : ""
var x5 = foo<string>({ x: "", y: 4 }, "");
>x5 : string
>foo<string>({ x: "", y: 4 }, "") : string
>foo : <T>(n: { x: T; y: T; }, m: T) => T
>{ x: "", y: 4 } : { x: string; y: number; }
>x : string
>"" : ""
>y : number
>4 : 4
>"" : ""
|