File: typeArgInference.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 (96 lines) | stat: -rw-r--r-- 2,692 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
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
=== tests/cases/compiler/typeArgInference.ts ===
interface I {
    f<T, U>(a1: { a: T; b: U }[], a2: { a: T; b: U }[]): { c: T; d: U };
>f : <T, U>(a1: { a: T; b: U; }[], a2: { a: T; b: U; }[]) => { c: T; d: U; }
>a1 : { a: T; b: U; }[]
>a : T
>b : U
>a2 : { a: T; b: U; }[]
>a : T
>b : U
>c : T
>d : U

    g<T, U>(...arg: { a: T; b: U }[][]): { c: T; d: U };
>g : <T, U>(...arg: { a: T; b: U; }[][]) => { c: T; d: U; }
>arg : { a: T; b: U; }[][]
>a : T
>b : U
>c : T
>d : U
}
var o = { a: 3, b: "test" };
>o : { a: number; b: string; }
>{ a: 3, b: "test" } : { a: number; b: string; }
>a : number
>3 : 3
>b : string
>"test" : "test"

var x: I;
>x : I

var t1 = x.f([o], [o]);
>t1 : { c: number; d: string; }
>x.f([o], [o]) : { c: number; d: string; }
>x.f : <T, U>(a1: { a: T; b: U; }[], a2: { a: T; b: U; }[]) => { c: T; d: U; }
>x : I
>f : <T, U>(a1: { a: T; b: U; }[], a2: { a: T; b: U; }[]) => { c: T; d: U; }
>[o] : { a: number; b: string; }[]
>o : { a: number; b: string; }
>[o] : { a: number; b: string; }[]
>o : { a: number; b: string; }

var t1: { c: number; d: string }; 
>t1 : { c: number; d: string; }
>c : number
>d : string

var t2 = x.f<number, string>([o], [o]);
>t2 : { c: number; d: string; }
>x.f<number, string>([o], [o]) : { c: number; d: string; }
>x.f : <T, U>(a1: { a: T; b: U; }[], a2: { a: T; b: U; }[]) => { c: T; d: U; }
>x : I
>f : <T, U>(a1: { a: T; b: U; }[], a2: { a: T; b: U; }[]) => { c: T; d: U; }
>[o] : { a: number; b: string; }[]
>o : { a: number; b: string; }
>[o] : { a: number; b: string; }[]
>o : { a: number; b: string; }

var t2: { c: number; d: string }; 
>t2 : { c: number; d: string; }
>c : number
>d : string

var t3 = x.g([o], [o]);
>t3 : { c: number; d: string; }
>x.g([o], [o]) : { c: number; d: string; }
>x.g : <T, U>(...arg: { a: T; b: U; }[][]) => { c: T; d: U; }
>x : I
>g : <T, U>(...arg: { a: T; b: U; }[][]) => { c: T; d: U; }
>[o] : { a: number; b: string; }[]
>o : { a: number; b: string; }
>[o] : { a: number; b: string; }[]
>o : { a: number; b: string; }

var t3: { c: number; d: string };
>t3 : { c: number; d: string; }
>c : number
>d : string

var t4 = x.g<number, string>([o], [o]);
>t4 : { c: number; d: string; }
>x.g<number, string>([o], [o]) : { c: number; d: string; }
>x.g : <T, U>(...arg: { a: T; b: U; }[][]) => { c: T; d: U; }
>x : I
>g : <T, U>(...arg: { a: T; b: U; }[][]) => { c: T; d: U; }
>[o] : { a: number; b: string; }[]
>o : { a: number; b: string; }
>[o] : { a: number; b: string; }[]
>o : { a: number; b: string; }

var t4: { c: number; d: string };
>t4 : { c: number; d: string; }
>c : number
>d : string