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 66 67 68 69 70 71 72
|
=== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithArrayLiteralArgs.ts ===
function foo<T>(t: T) {
>foo : <T>(t: T) => T
>T : T
>t : T
>T : T
return t;
>t : T
}
var r = foo([1, 2]); // number[]
>r : number[]
>foo([1, 2]) : number[]
>foo : <T>(t: T) => T
>[1, 2] : number[]
>1 : 1
>2 : 2
var r = foo<number[]>([1, 2]); // number[]
>r : number[]
>foo<number[]>([1, 2]) : number[]
>foo : <T>(t: T) => T
>[1, 2] : number[]
>1 : 1
>2 : 2
var ra = foo<any[]>([1, 2]); // any[]
>ra : any[]
>foo<any[]>([1, 2]) : any[]
>foo : <T>(t: T) => T
>[1, 2] : number[]
>1 : 1
>2 : 2
var r2 = foo([]); // any[]
>r2 : any[]
>foo([]) : any[]
>foo : <T>(t: T) => T
>[] : undefined[]
var r3 = foo<number[]>([]); // number[]
>r3 : number[]
>foo<number[]>([]) : number[]
>foo : <T>(t: T) => T
>[] : undefined[]
var r4 = foo([1, '']); // {}[]
>r4 : (string | number)[]
>foo([1, '']) : (string | number)[]
>foo : <T>(t: T) => T
>[1, ''] : (string | number)[]
>1 : 1
>'' : ""
var r5 = foo<any[]>([1, '']); // any[]
>r5 : any[]
>foo<any[]>([1, '']) : any[]
>foo : <T>(t: T) => T
>[1, ''] : (string | number)[]
>1 : 1
>'' : ""
var r6 = foo<Object[]>([1, '']); // Object[]
>r6 : Object[]
>foo<Object[]>([1, '']) : Object[]
>foo : <T>(t: T) => T
>Object : Object
>[1, ''] : (string | number)[]
>1 : 1
>'' : ""
|