TS2875

The 'this' types of each signature are incompatible.

Broken Code ❌

class Base {
  method(this: Base): void {}
}
 
class Derived extends Base {
  method(this: Derived): void {}
}

Fixed Code ✔️

class Base {
  method(this: Base): void {}
}
 
class Derived extends Base {
  method(this: Base): void {}
}

Alternative:

class Base {
  method(): void {}
}
 
class Derived extends Base {
  method(): void {}
}

When overriding methods, the this parameter type must be compatible with the base class version.