Skip to content
Latchkey

TS2515: Non-abstract class does not implement abstract member - in CI

A concrete class extends an abstract class but does not implement one of its abstract members.

What this error means

Type-checking fails with TS2515 naming the abstract member the subclass left unimplemented.

tsc
src/shape.ts(10,7): error TS2515: Non-abstract class 'Circle' does not implement inherited abstract member 'area' from class 'Shape'.

Common causes

How to fix it

Implement the abstract member

  1. Add the method/property with a matching signature in the subclass
ts
class Circle extends Shape {
  area(): number { return Math.PI * this.r ** 2 }
}

Keep the subclass abstract if intended

  1. If the class is not meant to be instantiated, declare it abstract too

How to prevent it

  • Implement all abstract members when subclassing, or keep intermediate classes abstract.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →