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

**Code:** `TS2420: Class incorrectly implements interface` · **Category:** TypeScript · **Seen on:** TypeScript

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

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

---
Source: [WhatIsMyError](https://whatismyerror.com/errors/typescript/ts2420-class-incorrectly-implements-interface)
