# TS2512: Overload signatures must all be abstract or non-abstract.

> Overloads of a method disagree on whether it is abstract. Mark every signature abstract, or none of them.

## What it means

An overloaded method is one member, so either all of its signatures are `abstract` (and
there's no implementation) or none are.

## Example

```ts
export abstract class Reader {
  abstract read(n: number): string;
  read(): string;
}
```

## How to fix

- Add `abstract` to every overload of the member.
- Or remove it from all of them and add an implementation.

Source: https://ts-r.dev/errors/TS2512/
