forked from microsoft/TypeScript
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathcallGenericFunctionWithZeroTypeArguments.types
110 lines (93 loc) · 1.74 KB
/
callGenericFunctionWithZeroTypeArguments.types
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
=== tests/cases/conformance/types/typeParameters/typeArgumentLists/callGenericFunctionWithZeroTypeArguments.ts ===
// valid invocations of generic functions with no explicit type arguments provided
function f<T>(x: T): T { return null; }
>f : <T>(x: T) => T
>x : T
>null : null
var r = f(1);
>r : number
>f(1) : 1
>f : <T>(x: T) => T
>1 : 1
var f2 = <T>(x: T): T => { return null; }
>f2 : <T>(x: T) => T
><T>(x: T): T => { return null; } : <T>(x: T) => T
>x : T
>null : null
var r2 = f2(1);
>r2 : number
>f2(1) : 1
>f2 : <T>(x: T) => T
>1 : 1
var f3: { <T>(x: T): T; }
>f3 : <T>(x: T) => T
>x : T
var r3 = f3(1);
>r3 : number
>f3(1) : 1
>f3 : <T>(x: T) => T
>1 : 1
class C {
>C : C
f<T>(x: T): T {
>f : <T>(x: T) => T
>x : T
return null;
>null : null
}
}
var r4 = (new C()).f(1);
>r4 : number
>(new C()).f(1) : 1
>(new C()).f : <T>(x: T) => T
>(new C()) : C
>new C() : C
>C : typeof C
>f : <T>(x: T) => T
>1 : 1
interface I {
f<T>(x: T): T;
>f : <T>(x: T) => T
>x : T
}
var i: I;
>i : I
var r5 = i.f(1);
>r5 : number
>i.f(1) : 1
>i.f : <T>(x: T) => T
>i : I
>f : <T>(x: T) => T
>1 : 1
class C2<T> {
>C2 : C2<T>
f(x: T): T {
>f : (x: T) => T
>x : T
return null;
>null : null
}
}
var r6 = (new C2()).f(1);
>r6 : unknown
>(new C2()).f(1) : unknown
>(new C2()).f : (x: unknown) => unknown
>(new C2()) : C2<unknown>
>new C2() : C2<unknown>
>C2 : typeof C2
>f : (x: unknown) => unknown
>1 : 1
interface I2<T> {
f(x: T): T;
>f : (x: T) => T
>x : T
}
var i2: I2<number>;
>i2 : I2<number>
var r7 = i2.f(1);
>r7 : number
>i2.f(1) : number
>i2.f : (x: number) => number
>i2 : I2<number>
>f : (x: number) => number
>1 : 1