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
|
=== tests/cases/compiler/contextualTypingOfGenericFunctionTypedArguments1.ts ===
interface Collection<T> {
length: number;
>length : number
add(x: T): void;
>add : (x: T) => void
>x : T
remove(x: T): boolean;
>remove : (x: T) => boolean
>x : T
}
interface Combinators {
forEach<T>(c: Collection<T>, f: (x: T) => Date): void;
>forEach : <T>(c: Collection<T>, f: (x: T) => Date) => void
>c : Collection<T>
>f : (x: T) => Date
>x : T
}
var c2: Collection<number>;
>c2 : Collection<number>
var _: Combinators;
>_ : Combinators
// errors on all 3 lines, bug was that r5 was the only line with errors
var f = (x: number) => { return x.toFixed() };
>f : (x: number) => string
>(x: number) => { return x.toFixed() } : (x: number) => string
>x : number
>x.toFixed() : string
>x.toFixed : (fractionDigits?: number) => string
>x : number
>toFixed : (fractionDigits?: number) => string
var r5 = _.forEach<number>(c2, f);
>r5 : any
>_.forEach<number>(c2, f) : any
>_.forEach : <T>(c: Collection<T>, f: (x: T) => Date) => void
>_ : Combinators
>forEach : <T>(c: Collection<T>, f: (x: T) => Date) => void
>c2 : Collection<number>
>f : (x: number) => string
var r6 = _.forEach<number>(c2, (x) => { return x.toFixed() });
>r6 : any
>_.forEach<number>(c2, (x) => { return x.toFixed() }) : any
>_.forEach : <T>(c: Collection<T>, f: (x: T) => Date) => void
>_ : Combinators
>forEach : <T>(c: Collection<T>, f: (x: T) => Date) => void
>c2 : Collection<number>
>(x) => { return x.toFixed() } : (x: number) => string
>x : number
>x.toFixed() : string
>x.toFixed : (fractionDigits?: number) => string
>x : number
>toFixed : (fractionDigits?: number) => string
|