TS18013

The operand of a 'delete' operator cannot be a read-only property.

Broken Code ❌

interface User {
  readonly name: string;
}
 
const user: User = { name: 'John' };
delete user.name;

Fixed Code ✔️

interface User {
  name?: string;
}
 
const user: User = { name: 'John' };
delete user.name;

Alternative:

interface User {
  readonly name: string;
}
 
const user = { name: 'John' } as User;
const { name, ...rest } = user;

Readonly properties cannot be deleted. Remove the readonly modifier or create a new object without the property.