=== tests/cases/compiler/recursiveInheritance2.ts === interface A { (): B; }; >A : A >B : B declare var a: A; >a : A >A : A var x = a(); >x : B >a() : B >a : A interface B { (): C; }; >B : B >C : C declare var b: B; >b : B >B : B var y = b(); >y : C >b() : C >b : B interface C { (): A; }; >C : C >A : A declare var c: C; >c : C >C : C var z = c(); >z : A >c() : A >c : C x = y; >x = y : C >x : B >y : C