File: contextualTypingOfGenericFunctionTypedArguments1.types

package info (click to toggle)
node-typescript 3.3.3333-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 324,548 kB
  • sloc: makefile: 6; sh: 3
file content (61 lines) | stat: -rw-r--r-- 1,724 bytes parent folder | download
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