TS18009
The operand of a 'delete' operator must be optional.
Broken Code ❌
interface User {
name: string;
age: number;
}
const user: User = { name: 'John', age: 30 };
delete user.age;{
"compilerOptions": {
"strictNullChecks": true
}
}Fixed Code ✔️
interface User {
name: string;
age?: number;
}
const user: User = { name: 'John', age: 30 };
delete user.age;{
"compilerOptions": {
"strictNullChecks": true
}
}Alternative:
interface User {
name: string;
age: number | undefined;
}
const user: User = { name: 'John', age: 30 };
user.age = undefined;{
"compilerOptions": {
"strictNullChecks": true
}
}Properties must be optional to be deleted safely. Mark the property with ? or use undefined instead of delete.
