• Error
  • Reported by the type checker

TS4114

This member must have an 'override' modifier because it overrides a member in the base class '{0}'.

Under noImplicitOverride, a member replaces a base class member without the override keyword. Add override.

What it means

With noImplicitOverride on, every member that replaces a base class member must say so with override. That way, renaming or removing the base member makes the subclass fail to compile instead of silently becoming a new member.

Example

tsconfig.json
{
  "compilerOptions": {
    "strict": true,
    "target": "es2022",
    "module": "esnext",
    "moduleResolution": "bundler",
    "noEmit": true,
    "noImplicitOverride": true
  }
}
index.ts
class Base {
  start() {}
}
class Child extends Base {
  start() {}
}
export {};
ts-r-check -p tsconfig.json --pretty false ts-r output
index.ts(5,3): error TS4114: This member must have an 'override' modifier because it overrides a member in the base class 'Base'.

Recorded by node scripts/verify-examples.mjs with ts-r built from commit 6deaf01.

How to fix

  • Add override: override start() {}.