=== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfAny.ts === // every type is a subtype of any, no errors expected interface I { >I : I [x: string]: any; >x : string foo: any; >foo : any } interface I2 { >I2 : I2 [x: string]: any; >x : string foo: number; >foo : number } interface I3 { >I3 : I3 [x: string]: any; >x : string foo: string; >foo : string } interface I4 { >I4 : I4 [x: string]: any; >x : string foo: boolean; >foo : boolean } interface I5 { >I5 : I5 [x: string]: any; >x : string foo: Date; >foo : Date >Date : Date } interface I6 { >I6 : I6 [x: string]: any; >x : string foo: RegExp; >foo : RegExp >RegExp : RegExp } interface I7 { >I7 : I7 [x: string]: any; >x : string foo: { bar: number }; >foo : { bar: number; } >bar : number } interface I8 { >I8 : I8 [x: string]: any; >x : string foo: number[]; >foo : number[] } interface I9 { >I9 : I9 [x: string]: any; >x : string foo: I8; >foo : I8 >I8 : I8 } class A { foo: number; } >A : A >foo : number interface I10 { >I10 : I10 [x: string]: any; >x : string foo: A; >foo : A >A : A } class A2 { foo: T; } >A2 : A2 >T : T >foo : T >T : T interface I11 { >I11 : I11 [x: string]: any; >x : string foo: A2; >foo : A2 >A2 : A2 } interface I12 { >I12 : I12 [x: string]: any; >x : string foo: (x) => number; >foo : (x: any) => number >x : any } interface I13 { >I13 : I13 [x: string]: any; >x : string foo: (x:T) => T; >foo : (x: T) => T >T : T >x : T >T : T >T : T } enum E { A } >E : E >A : E interface I14 { >I14 : I14 [x: string]: any; >x : string foo: E; >foo : E >E : E } function f() { } >f : typeof f module f { >f : typeof f export var bar = 1; >bar : number } interface I15 { >I15 : I15 [x: string]: any; >x : string foo: typeof f; >foo : typeof f >f : typeof f } class c { baz: string } >c : c >baz : string module c { >c : typeof c export var bar = 1; >bar : number } interface I16 { >I16 : I16 [x: string]: any; >x : string foo: typeof c; >foo : typeof c >c : typeof c } interface I17 { >I17 : I17 >T : T [x: string]: any; >x : string foo: T; >foo : T >T : T } interface I18 { >I18 : I18 >T : T >U : U [x: string]: any; >x : string foo: U; >foo : U >U : U } //interface I18 { // [x: string]: any; // foo: U; //} interface I19 { >I19 : I19 [x: string]: any; >x : string foo: Object; >foo : Object >Object : Object } interface I20 { >I20 : I20 [x: string]: any; >x : string foo: {}; >foo : {} }