class C extends E { foo: string; } // error class D extends C { bar: string; } class E extends D { baz: number; } class C2 extends E2 { foo: T; } // error class D2 extends C2 { bar: T; } class E2 extends D2 { baz: T; }