=== tests/cases/compiler/generics1NoError.ts === interface A { a: string; } >A : A >a : string interface B extends A { b: string; } >B : B >A : A >b : string interface C extends B { c: string; } >C : C >B : B >c : string interface G { >G : G >T : T >U : U >B : B x: T; >x : T >T : T y: U; >y : U >U : U } var v1: G; // Ok >v1 : G >G : G >A : A >C : C var v2: G<{ a: string }, C>; // Ok, equivalent to G >v2 : G<{ a: string; }, C> >G : G >a : string >C : C var v4: G, C>; // Ok >v4 : G, C> >G : G >G : G >A : A >B : B >C : C