- Error
- Reported by the type checker
TS4115
This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'.
Under noImplicitOverride, a constructor parameter property replaces a base class member without override. Add override to it.
What it means
A parameter property (constructor(public x: T)) declares a class member. With noImplicitOverride on, if a base class already has that member, the parameter property needs override too.
Example
{
"compilerOptions": {
"strict": true,
"target": "es2022",
"module": "esnext",
"moduleResolution": "bundler",
"noEmit": true,
"noImplicitOverride": true
}
}
class Base {
name = "";
}
class Child extends Base {
constructor(public name: string) { super(); }
}
export {};
ts-r-check -p tsconfig.json --pretty false ts-r outputindex.ts(5,15): error TS4115: This parameter property must have an 'override' modifier because it overrides a member in base class 'Base'.
Recorded by node scripts/verify-examples.mjs with ts-r built from commit 6deaf01.
How to fix
- Add
overrideto the parameter:constructor(public override name: string).