=== tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInitializer.ts === interface I { >I : I id: number; >id : number } class C implements I { >C : C >I : I id: number; >id : number } class D{ >D : D >T : T source: T; >source : T >T : T recurse: D; >recurse : D >D : D >T : T wrapped: D> >wrapped : D> >D : D >D : D >T : T } function F(x: string): number { return 42; } >F : (x: string) => number >x : string module M { >M : typeof M export class A { >A : A name: string; >name : string } export function F2(x: number): string { return x.toString(); } >F2 : (x: number) => string >x : number >x.toString() : string >x.toString : (radix?: number) => string >x : number >toString : (radix?: number) => string } var aNumber: number = 9.9; >aNumber : number var aString: string = 'this is a string'; >aString : string var aDate: Date = new Date(12); >aDate : Date >Date : Date >new Date(12) : Date >Date : { (): string; new (): Date; new (value: number): Date; new (value: string): Date; new (year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date; prototype: Date; parse(s: string): number; UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; now(): number; } var anObject: Object = new Object(); >anObject : Object >Object : Object >new Object() : Object >Object : { (): any; (value: any): any; new (value?: any): Object; prototype: Object; getPrototypeOf(o: any): any; getOwnPropertyDescriptor(o: any, p: string): PropertyDescriptor; getOwnPropertyNames(o: any): string[]; create(o: any, properties?: PropertyDescriptorMap): any; defineProperty(o: any, p: string, attributes: PropertyDescriptor): any; defineProperties(o: any, properties: PropertyDescriptorMap): any; seal(o: any): any; freeze(o: any): any; preventExtensions(o: any): any; isSealed(o: any): boolean; isFrozen(o: any): boolean; isExtensible(o: any): boolean; keys(o: any): string[]; } var anAny: any = null; >anAny : any var aSecondAny: any = undefined; >aSecondAny : any >undefined : undefined var aVoid: void = undefined; >aVoid : void >undefined : undefined var anInterface: I = new C(); >anInterface : I >I : I >new C() : C >C : typeof C var aClass: C = new C(); >aClass : C >C : C >new C() : C >C : typeof C var aGenericClass: D = new D(); >aGenericClass : D >D : D >new D() : D >D : typeof D var anObjectLiteral: I = { id: 12 }; >anObjectLiteral : I >I : I >{ id: 12 } : { id: number; } >id : number var anOtherObjectLiteral: { id: number } = new C(); >anOtherObjectLiteral : { id: number; } >id : number >new C() : C >C : typeof C var aFunction: typeof F = F; >aFunction : (x: string) => number >F : (x: string) => number >F : (x: string) => number var anOtherFunction: (x: string) => number = F; >anOtherFunction : (x: string) => number >x : string >F : (x: string) => number var aLambda: typeof F = (x) => 2; >aLambda : (x: string) => number >F : (x: string) => number >(x) => 2 : (x: string) => number >x : string var aModule: typeof M = M; >aModule : typeof M >M : typeof M >M : typeof M var aClassInModule: M.A = new M.A(); >aClassInModule : M.A >M : unknown >A : M.A >new M.A() : M.A >M.A : typeof M.A >M : typeof M >A : typeof M.A var aFunctionInModule: typeof M.F2 = (x) => 'this is a string'; >aFunctionInModule : (x: number) => string >M : typeof M >F2 : (x: number) => string >(x) => 'this is a string' : (x: number) => string >x : number