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 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
|
=== tests/cases/compiler/mismatchedExplicitTypeParameterAndArgumentType.ts ===
function map<T, U>(xs: T[], f: (x: T) => U) {
>map : <T, U>(xs: T[], f: (x: T) => U) => U[]
>xs : T[]
>f : (x: T) => U
>x : T
var ys: U[] = [];
>ys : U[]
>[] : undefined[]
xs.forEach(x => ys.push(f(x)));
>xs.forEach(x => ys.push(f(x))) : void
>xs.forEach : (callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any) => void
>xs : T[]
>forEach : (callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any) => void
>x => ys.push(f(x)) : (x: T) => number
>x : T
>ys.push(f(x)) : number
>ys.push : (...items: U[]) => number
>ys : U[]
>push : (...items: U[]) => number
>f(x) : U
>f : (x: T) => U
>x : T
return ys;
>ys : U[]
}
var r0 = map([1, ""], (x) => x.toString());
>r0 : string[]
>map([1, ""], (x) => x.toString()) : string[]
>map : <T, U>(xs: T[], f: (x: T) => U) => U[]
>[1, ""] : (string | number)[]
>1 : 1
>"" : ""
>(x) => x.toString() : (x: string | number) => string
>x : string | number
>x.toString() : string
>x.toString : (() => string) | ((radix?: number) => string)
>x : string | number
>toString : (() => string) | ((radix?: number) => string)
var r5 = map<any, any>([1, ""], (x) => x.toString());
>r5 : any[]
>map<any, any>([1, ""], (x) => x.toString()) : any[]
>map : <T, U>(xs: T[], f: (x: T) => U) => U[]
>[1, ""] : (string | number)[]
>1 : 1
>"" : ""
>(x) => x.toString() : (x: any) => any
>x : any
>x.toString() : any
>x.toString : any
>x : any
>toString : any
var r6 = map<Object, Object>([1, ""], (x) => x.toString());
>r6 : Object[]
>map<Object, Object>([1, ""], (x) => x.toString()) : Object[]
>map : <T, U>(xs: T[], f: (x: T) => U) => U[]
>[1, ""] : (string | number)[]
>1 : 1
>"" : ""
>(x) => x.toString() : (x: Object) => string
>x : Object
>x.toString() : string
>x.toString : () => string
>x : Object
>toString : () => string
var r7 = map<number, string>([1, ""], (x) => x.toString()); // error
>r7 : string[]
>map<number, string>([1, ""], (x) => x.toString()) : string[]
>map : <T, U>(xs: T[], f: (x: T) => U) => U[]
>[1, ""] : (string | number)[]
>1 : 1
>"" : ""
>(x) => x.toString() : (x: number) => string
>x : number
>x.toString() : string
>x.toString : (radix?: number) => string
>x : number
>toString : (radix?: number) => string
var r7b = map<number>([1, ""], (x) => x.toString()); // error
>r7b : unknown[]
>map<number>([1, ""], (x) => x.toString()) : unknown[]
>map : <T, U>(xs: T[], f: (x: T) => U) => U[]
>[1, ""] : (string | number)[]
>1 : 1
>"" : ""
>(x) => x.toString() : (x: number) => string
>x : number
>x.toString() : string
>x.toString : (radix?: number) => string
>x : number
>toString : (radix?: number) => string
var r8 = map<any, string>([1, ""], (x) => x.toString());
>r8 : string[]
>map<any, string>([1, ""], (x) => x.toString()) : string[]
>map : <T, U>(xs: T[], f: (x: T) => U) => U[]
>[1, ""] : (string | number)[]
>1 : 1
>"" : ""
>(x) => x.toString() : (x: any) => any
>x : any
>x.toString() : any
>x.toString : any
>x : any
>toString : any
|