=== tests/cases/conformance/statements/VariableStatements/validMultipleVariableDeclarations.ts === // all expected to be valid var x: number; >x : number var x = 2; >x : number >2 : number if (true) { >true : boolean var x = 3; >x : number >3 : number for (var x = 0; ;) { } >x : number >0 : number } var x = undefined; >x : number >undefined : number >undefined : undefined // new declaration space, making redeclaring x as a string valid function declSpace() { >declSpace : () => void var x = 'this is a string'; >x : string >'this is a string' : string } interface Point { x: number; y: number; } >Point : Point >x : number >y : number var p: Point; >p : Point >Point : Point var p = { x: 1, y: 2 }; >p : Point >{ x: 1, y: 2 } : { x: number; y: number; } >x : number >1 : number >y : number >2 : number var p: Point = { x: 0, y: undefined }; >p : Point >Point : Point >{ x: 0, y: undefined } : { x: number; y: undefined; } >x : number >0 : number >y : undefined >undefined : undefined var p = { x: 1, y: undefined }; >p : Point >{ x: 1, y: undefined } : { x: number; y: number; } >x : number >1 : number >y : number >undefined : number >undefined : undefined var p: { x: number; y: number; } = { x: 1, y: 2 }; >p : Point >x : number >y : number >{ x: 1, y: 2 } : { x: number; y: number; } >x : number >1 : number >y : number >2 : number var p = <{ x: number; y: number; }>{ x: 0, y: undefined }; >p : Point ><{ x: number; y: number; }>{ x: 0, y: undefined } : { x: number; y: number; } >x : number >y : number >{ x: 0, y: undefined } : { x: number; y: undefined; } >x : number >0 : number >y : undefined >undefined : undefined var p: typeof p; >p : Point >p : Point var fn = function (s: string) { return 42; } >fn : (s: string) => number >function (s: string) { return 42; } : (s: string) => number >s : string >42 : number var fn = (s: string) => 3; >fn : (s: string) => number >(s: string) => 3 : (s: string) => number >s : string >3 : number var fn: (s: string) => number; >fn : (s: string) => number >s : string var fn: { (s: string): number }; >fn : (s: string) => number >s : string var fn = <(s: string) => number> null; >fn : (s: string) => number ><(s: string) => number> null : (s: string) => number >s : string >null : null var fn: typeof fn; >fn : (s: string) => number >fn : (s: string) => number var a: string[]; >a : string[] var a = ['a', 'b'] >a : string[] >['a', 'b'] : string[] >'a' : string >'b' : string var a = []; >a : string[] >[] : string[] >[] : undefined[] var a: string[] = []; >a : string[] >[] : undefined[] var a = new Array(); >a : string[] >new Array() : string[] >Array : ArrayConstructor var a: typeof a; >a : string[] >a : string[]