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

**Code:** `TS2430: Interface incorrectly extends interface` · **Category:** TypeScript · **Seen on:** TypeScript

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

## 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?

---
Source: [WhatIsMyError](https://whatismyerror.com/errors/typescript/ts2430-interface-incorrectly-extends-interface)
