//// [mutuallyRecursiveGenericBaseTypes1.ts] interface A { foo(): B; // instead of B does see this foo(): void; // instead of B does see this foo2(): B; } interface B extends A { bar(): void; } var b: B; b.foo(); // should not error //// [mutuallyRecursiveGenericBaseTypes1.js] var b; b.foo();