TS2420: Class incorrectly implements interface TypeScript Origin: On your device OSI layer 7 · Application Last updated 5 Nov 2026

TypeScript: error TS2420: Class 'Dog' incorrectly implements interface 'Animal'. Property 'speak' is missing in type 'Dog' but required in type 'Animal'

A class declared implements X doesn't provide every required member (or with matching types).

Exact message you may see error TS2420: Class 'Dog' incorrectly implements interface 'Animal'.Class incorrectly implements interface. Property 'speak' is missing in type 'Dog' but required in type 'Animal'TS2420 Class incorrectly implements interfacets(2420) Class 'X' incorrectly implements interface 'Y'
Seen on: TypeScript

Meaning

Add the missing members, fix their types/visibility (public), or make interface members optional. Remember implements only checks shape — it doesn't inherit implementation. Property initialisers and getters count.

Common causes

  • Missing method/property
  • Wrong member type
  • Private/protected members vs interface
  • Static vs instance mismatch
  • Interface changed after a dependency upgrade

⚡ Quick fix

  1. Implement the missing member
  2. Match types/modifiers
  3. Make the interface member optional if appropriate

Detailed fix by platform

TypeScript

  1. class Dog implements Animal { speak(): string { return "woof"; } }

How to diagnose

  1. Missing — Which member?
  2. Types — Match?
  3. Visibility — Public?

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

Where this error sits

Origin: On your device. Errors that are often confused with or caused by this one (click to open):

Cannot find module './App.vue' or its corresponding type declarations — TypeScript: error TS2307: Cannot find module './App.vue' or its corresponding type declarations. (Vue)Cannot find module '.…TS1005: ';' expected / ',' expected (syntax error) — TypeScript: error TS1005: ';' expected. (TypeScript)TS1005: ';' expected …TS1128: Declaration or statement expected — TypeScript: error TS1128: Declaration or statement expected. (TypeScript)TS1128: Declaration o…TS1192: Module has no default export — TypeScript: error TS1192: Module '"./utils"' has no default export. (TypeScript)TS1192: Module has no…TS1208: File cannot be compiled under '--isolatedModules' because it is considered a global script file — TypeScript: error TS1208: 'index.ts' cannot be compiled under '--isolatedModules' because it is considered a global script file. Add an import, export, or an empty 'export {}' statement (TypeScript)TS1208: File cannot b…TS1259: Module can only be default-imported using the 'esModuleInterop' flag — TypeScript: error TS1259: Module '"express"' can only be default-imported using the 'esModuleInterop' flag (TypeScript)TS1259: Module can on…TS2416: Property in type is not assignable to the same property in base type — TypeScript: error TS2416: Property 'render' in type 'Child' is not assignable to the same property in base type 'Base' (TypeScript)TS2416: Property in t…TS2430: Interface incorrectly extends interface — TypeScript: error TS2430: Interface 'B' incorrectly extends interface 'A'. Types of property 'x' are incompatible (TypeScript)TS2430: Interface inc…TS2420: C…

Explore the map of this error Full error map →

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.

💬 What worked for others

No tips yet — did something else fix this for you?

Share what worked for you

Tips are checked by an editor before they appear. Links are removed.