debugjavascriptCriticalCanonical
What is the logic behind the TypeScript error "The operand of a 'delete' operator must be optional"?
Viewed 0 times
typescripterroroperanddeletemustbehindtheoptionallogicoperator
Problem
This is the new error that is coming in typescript code.
I am not able to realize the logic behind it
Documentation
I am not able to realize the logic behind it
Documentation
/*When using the delete operator in strictNullChecks,
the operand must now be any, unknown, never, or be optional
(in that it contains undefined in the type). Otherwise, use of the delete operator is an error.*/
interface Thing {
prop: string;
}
function f(x: Thing) {
delete x.prop; // throws error = The operand of a 'delete' operator must be optional.
}Solution
I am not able to realize the logic behind it
The logic as I understand is the following:
Interface
If one removes the property, then the contract is not implemented anymore.
If you want it still valid when removed, just declare it as optional with a
I'm actually surprised that this was not causing error in earlier versions of TypeScript.
The logic as I understand is the following:
Interface
Thing is a contract asking to have a (non-null, non-undefined) prop as a string.If one removes the property, then the contract is not implemented anymore.
If you want it still valid when removed, just declare it as optional with a
?: prop?: stringI'm actually surprised that this was not causing error in earlier versions of TypeScript.
Context
Stack Overflow Q#63702057, score: 281
Revisions (0)
No revisions yet.