=== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers4.ts === // subtyping when property names do not match class Base { >Base : Symbol(Base, Decl(subtypingWithObjectMembers4.ts, 0, 0)) foo: string; >foo : Symbol(foo, Decl(subtypingWithObjectMembers4.ts, 2, 12)) } class Derived extends Base { >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers4.ts, 4, 1)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers4.ts, 0, 0)) bar: string; >bar : Symbol(bar, Decl(subtypingWithObjectMembers4.ts, 6, 28)) } class A { >A : Symbol(A, Decl(subtypingWithObjectMembers4.ts, 8, 1)) foo: Base; >foo : Symbol(foo, Decl(subtypingWithObjectMembers4.ts, 10, 9)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers4.ts, 0, 0)) } class B extends A { >B : Symbol(B, Decl(subtypingWithObjectMembers4.ts, 12, 1)) >A : Symbol(A, Decl(subtypingWithObjectMembers4.ts, 8, 1)) fooo: Derived; // ok, inherits foo >fooo : Symbol(fooo, Decl(subtypingWithObjectMembers4.ts, 14, 19)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers4.ts, 4, 1)) } class A2 { >A2 : Symbol(A2, Decl(subtypingWithObjectMembers4.ts, 16, 1)) 1: Base; >Base : Symbol(Base, Decl(subtypingWithObjectMembers4.ts, 0, 0)) } class B2 extends A2 { >B2 : Symbol(B2, Decl(subtypingWithObjectMembers4.ts, 20, 1)) >A2 : Symbol(A2, Decl(subtypingWithObjectMembers4.ts, 16, 1)) 1.1: Derived; // ok, inherits 1 >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers4.ts, 4, 1)) } class A3 { >A3 : Symbol(A3, Decl(subtypingWithObjectMembers4.ts, 24, 1)) '1': Base; >Base : Symbol(Base, Decl(subtypingWithObjectMembers4.ts, 0, 0)) } class B3 extends A3 { >B3 : Symbol(B3, Decl(subtypingWithObjectMembers4.ts, 28, 1)) >A3 : Symbol(A3, Decl(subtypingWithObjectMembers4.ts, 24, 1)) '1.1': Derived; // ok, inherits '1' >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers4.ts, 4, 1)) }