=== tests/cases/compiler/inferentialTypingUsingApparentType2.ts === function foo(x: T): T { >foo : (x: T) => T >T : T >m : (p: string) => number >p : string >x : T >T : T >T : T return undefined; >undefined : undefined } foo({ m(x) { return x.length } }); >foo({ m(x) { return x.length } }) : { } >foo : (x: T) => T >{ m(x) { return x.length } } : { m(x: string): number; } >m : (x: string) => number >x : string >x.length : number >x : string >length : number