Issue
This is the new error that is coming in typescript code.
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 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?: string
I'm actually surprised that this was not causing error in earlier versions of TypeScript.
Answered By - Pac0
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.