=== tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts === class Base { >Base : Base foo(x: { a: number }): { a: number } { >foo : (x: { a: number; }) => { a: number; } >x : { a: number; } >a : number >a : number return null; >null : null } } class Derived extends Base { >Derived : Derived >Base : Base foo(x: { a: number; b: number }): { a: number; b: number } { >foo : (x: { a: number; b: number; }) => { a: number; b: number; } >x : { a: number; b: number; } >a : number >b : number >a : number >b : number return null; >null : null } bar() { >bar : () => void var r = super.foo({ a: 1 }); // { a: number } >r : { a: number; } >super.foo({ a: 1 }) : { a: number; } >super.foo : (x: { a: number; }) => { a: number; } >super : Base >foo : (x: { a: number; }) => { a: number; } >{ a: 1 } : { a: number; } >a : number >1 : number var r2 = super.foo({ a: 1, b: 2 }); // { a: number } >r2 : { a: number; } >super.foo({ a: 1, b: 2 }) : { a: number; } >super.foo : (x: { a: number; }) => { a: number; } >super : Base >foo : (x: { a: number; }) => { a: number; } >{ a: 1, b: 2 } : { a: number; b: number; } >a : number >1 : number >b : number >2 : number var r3 = this.foo({ a: 1, b: 2 }); // { a: number; b: number; } >r3 : { a: number; b: number; } >this.foo({ a: 1, b: 2 }) : { a: number; b: number; } >this.foo : (x: { a: number; b: number; }) => { a: number; b: number; } >this : Derived >foo : (x: { a: number; b: number; }) => { a: number; b: number; } >{ a: 1, b: 2 } : { a: number; b: number; } >a : number >1 : number >b : number >2 : number } }