-
Notifications
You must be signed in to change notification settings - Fork 12.7k
/
Copy pathcastTest.types
106 lines (84 loc) · 2.31 KB
/
castTest.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
=== tests/cases/compiler/castTest.ts ===
var x : any = 0;
>x : any
var z = <number> x;
>z : number
><number> x : number
>x : any
var y = x + z;
>y : any
>x + z : any
>x : any
>z : number
var a = <any>0;
>a : any
><any>0 : any
var b = <boolean>true;
>b : boolean
><boolean>true : boolean
var s = <string>"";
>s : string
><string>"" : string
var ar = <any[]>null;
>ar : any[]
><any[]>null : any[]
var f = <(res : number) => void>null;
>f : (res: number) => void
><(res : number) => void>null : (res: number) => void
>res : number
declare class Point
>Point : Point
{
x: number;
>x : number
y: number;
>y : number
add(dx: number, dy: number): Point;
>add : (dx: number, dy: number) => Point
>dx : number
>dy : number
>Point : Point
mult(p: Point): Point;
>mult : (p: Point) => Point
>p : Point
>Point : Point
>Point : Point
constructor(x: number, y: number);
>x : number
>y : number
}
var p_cast = <Point> ({
>p_cast : Point
><Point> ({ x: 0, y: 0, add: function(dx, dy) { return new Point(this.x + dx, this.y + dy); }, mult: function(p) { return p; }}) : Point
>Point : Point
>({ x: 0, y: 0, add: function(dx, dy) { return new Point(this.x + dx, this.y + dy); }, mult: function(p) { return p; }}) : { x: number; y: number; add: (dx: number, dy: number) => Point; mult: (p: Point) => Point; }
>{ x: 0, y: 0, add: function(dx, dy) { return new Point(this.x + dx, this.y + dy); }, mult: function(p) { return p; }} : { x: number; y: number; add: (dx: number, dy: number) => Point; mult: (p: Point) => Point; }
x: 0,
>x : number
y: 0,
>y : number
add: function(dx, dy) {
>add : (dx: number, dy: number) => Point
>function(dx, dy) { return new Point(this.x + dx, this.y + dy); } : (dx: number, dy: number) => Point
>dx : number
>dy : number
return new Point(this.x + dx, this.y + dy);
>new Point(this.x + dx, this.y + dy) : Point
>Point : typeof Point
>this.x + dx : any
>this.x : any
>this : any
>x : any
>dx : number
>this.y + dy : any
>this.y : any
>this : any
>y : any
>dy : number
},
mult: function(p) { return p; }
>mult : (p: Point) => Point
>function(p) { return p; } : (p: Point) => Point
>p : Point
>p : Point
})