TS2430: Interface incorrectly extends interface TypeScript Origin: On your device Last updated 5 Nov 2026

TypeScript: error TS2430: Interface 'B' incorrectly extends interface 'A'. Types of property 'x' are incompatible

An extending interface redefines a property with a type that isn't assignable to the base's.

Exact message you may see error TS2430: Interface 'B' incorrectly extends interface 'A'.Interface incorrectly extends interface. Types of property 'x' are incompatibleTS2430 Interface incorrectly extends interfacets(2430) Interface 'X' incorrectly extends interface 'Y'
Seen on: TypeScript

Meaning

Narrow only (subtype) when extending: x: string can become "a" | "b" but not number. Use Omit<A, "x"> & { x: number } or interface B extends Omit<A, "x"> to change the type. Generics on the base can avoid conflicts.

Common causes

  • Property type changed incompatibly
  • Optional/required mismatch
  • Function parameter types incompatible
  • Extending library types after upgrade
  • Multiple extends with conflicting members

⚡ Quick fix

  1. interface B extends Omit<A, "x"> { x: number }
  2. Make the base property type wider
  3. Use intersection types carefully

Detailed fix by platform

TypeScript

  1. interface B extends Omit<A, "id"> { id: string }

How to diagnose

  1. Property — Conflicts?
  2. Direction — Narrowing?
  3. Omit — Used?

🔧 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…TS2322 — TS2322: Type 'X' is not assignable to type 'Y' (TypeScript)TS2322TS2416: 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…TS2420: Class incorrectly implements interface — TypeScript: error TS2420: Class 'Dog' incorrectly implements interface 'Animal'. Property 'speak' is missing in type 'Dog' but required in type 'Animal' (TypeScript)TS2420: Class incorre…TS2430: I…

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.