tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classIsSubtypeOfBaseType.ts(11,7): error TS2415: Class 'Derived2' incorrectly extends base class 'Base<{ bar: string; }>'. Types of property 'foo' are incompatible. Type '{ bar?: string; }' is not assignable to type '{ bar: string; }'. Property 'bar' is optional in type '{ bar?: string; }' but required in type '{ bar: string; }'. ==== tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classIsSubtypeOfBaseType.ts (1 errors) ==== class Base { foo: T; } class Derived extends Base<{ bar: string; }> { foo: { bar: string; baz: number; // ok } } class Derived2 extends Base<{ bar: string; }> { ~~~~~~~~ !!! error TS2415: Class 'Derived2' incorrectly extends base class 'Base<{ bar: string; }>'. !!! error TS2415: Types of property 'foo' are incompatible. !!! error TS2415: Type '{ bar?: string; }' is not assignable to type '{ bar: string; }'. !!! error TS2415: Property 'bar' is optional in type '{ bar?: string; }' but required in type '{ bar: string; }'. foo: { bar?: string; // error } }