// @noImplicitAny: true function getNumber(): number { return 1; } class Example { getNumber(): number { return 1; } doSomething(a = this.getNumber()): typeof a { return a; } } function weird(this: Example, a = this.getNumber()) { return a; } class Weird { doSomething(this: Example, a = this.getNumber()) { return a; } }