=== tests/cases/compiler/castTest.ts === var x : any = 0; >x : any, Symbol(x, Decl(castTest.ts, 1, 3)) >0 : number var z = x; >z : number, Symbol(z, Decl(castTest.ts, 2, 3)) > x : number >x : any, Symbol(x, Decl(castTest.ts, 1, 3)) var y = x + z; >y : any, Symbol(y, Decl(castTest.ts, 3, 3)) >x + z : any >x : any, Symbol(x, Decl(castTest.ts, 1, 3)) >z : number, Symbol(z, Decl(castTest.ts, 2, 3)) var a = 0; >a : any, Symbol(a, Decl(castTest.ts, 5, 3)) >0 : any >0 : number var b = true; >b : boolean, Symbol(b, Decl(castTest.ts, 6, 3)) >true : boolean >true : boolean var s = ""; >s : string, Symbol(s, Decl(castTest.ts, 7, 3)) >"" : string >"" : string var ar = null; >ar : any[], Symbol(ar, Decl(castTest.ts, 9, 3)) >null : any[] >null : null var f = <(res : number) => void>null; >f : (res: number) => void, Symbol(f, Decl(castTest.ts, 11, 3)) ><(res : number) => void>null : (res: number) => void >res : number, Symbol(res, Decl(castTest.ts, 11, 10)) >null : null declare class Point >Point : Point, Symbol(Point, Decl(castTest.ts, 11, 37)) { x: number; >x : number, Symbol(x, Decl(castTest.ts, 14, 1)) y: number; >y : number, Symbol(y, Decl(castTest.ts, 15, 14)) add(dx: number, dy: number): Point; >add : (dx: number, dy: number) => Point, Symbol(add, Decl(castTest.ts, 16, 14)) >dx : number, Symbol(dx, Decl(castTest.ts, 17, 8)) >dy : number, Symbol(dy, Decl(castTest.ts, 17, 19)) >Point : Point, Symbol(Point, Decl(castTest.ts, 11, 37)) mult(p: Point): Point; >mult : (p: Point) => Point, Symbol(mult, Decl(castTest.ts, 17, 39)) >p : Point, Symbol(p, Decl(castTest.ts, 18, 9)) >Point : Point, Symbol(Point, Decl(castTest.ts, 11, 37)) >Point : Point, Symbol(Point, Decl(castTest.ts, 11, 37)) constructor(x: number, y: number); >x : number, Symbol(x, Decl(castTest.ts, 19, 16)) >y : number, Symbol(y, Decl(castTest.ts, 19, 26)) } var p_cast = ({ >p_cast : Point, Symbol(p_cast, Decl(castTest.ts, 22, 3)) > ({ 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, Symbol(Point, Decl(castTest.ts, 11, 37)) >({ 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, Symbol(x, Decl(castTest.ts, 22, 23)) >0 : number y: 0, >y : number, Symbol(y, Decl(castTest.ts, 23, 9)) >0 : number add: function(dx, dy) { >add : (dx: number, dy: number) => Point, Symbol(add, Decl(castTest.ts, 24, 9)) >function(dx, dy) { return new Point(this.x + dx, this.y + dy); } : (dx: number, dy: number) => Point >dx : number, Symbol(dx, Decl(castTest.ts, 25, 18)) >dy : number, Symbol(dy, Decl(castTest.ts, 25, 21)) return new Point(this.x + dx, this.y + dy); >new Point(this.x + dx, this.y + dy) : Point >Point : typeof Point, Symbol(Point, Decl(castTest.ts, 11, 37)) >this.x + dx : any >this.x : any >this : any >x : any >dx : number, Symbol(dx, Decl(castTest.ts, 25, 18)) >this.y + dy : any >this.y : any >this : any >y : any >dy : number, Symbol(dy, Decl(castTest.ts, 25, 21)) }, mult: function(p) { return p; } >mult : (p: Point) => Point, Symbol(mult, Decl(castTest.ts, 27, 6)) >function(p) { return p; } : (p: Point) => Point >p : Point, Symbol(p, Decl(castTest.ts, 28, 19)) >p : Point, Symbol(p, Decl(castTest.ts, 28, 19)) })