TS2676
TypeScriptERRORNotableTypeHIGH confidence

Accessors must both be abstract or non-abstract.

Production Risk

Build will fail; resolve before shipping.

What this means

A type-checking error (TS2676): Accessors must both be abstract or non-abstract.. This diagnostic is emitted by the TypeScript compiler when accessors must both be abstract or non-abstract..

Why it happens
  1. 1A concrete class extends an abstract class but does not implement all abstract members
How to reproduce

TypeScript compiler reports TS2676 during type checking.

trigger — this will error
trigger — this will error
// Triggers TS2676
// Accessors must both be abstract or non-abstract.

expected output

error TS2676: Accessors must both be abstract or non-abstract.

Fix

Implement all abstract members

WHEN Extending an abstract class

Implement all abstract members
abstract class Base {
  abstract doWork(): void;
}
class Derived extends Base {
  doWork(): void { /* implementation */ }
}

Why this works

All abstract members must be implemented in concrete subclasses.

Sources
Official documentation ↗

TypeScript Compiler Diagnostics

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All TypeScript errors