This fails in TypeScript...
interface A { getSomeBasicA():A; getSomeBetterA():BetterA; } interface BetterA extends A { getSomeBasicA():BetterA;