当我们尝试使用delete运算符删除标记为必需的属性时,会出现错误“'delete' 运算符的操作数必须是可选的”。 需删除的变量是一个具有confirm指向一个string值的属性的对象。该属性在对象上标记为必需,因此尝试删除它会导致错误。 要解决该错误,请在使用运算符之前使用问号将属性标记为可选delet,问号将属性设置为optional。
prop: string; }functionf(x: Thing){deletex.prop;// throws error = The operand of a 'delete' operator must be optional.} 我无法意识到它背后的逻辑 我理解的逻辑如下: 接口Thing是一个合约,要求有一个(非空,非未定义)prop作为string。 如果一个人删除了财产,那么合同就不再执行了。 如果您希望它...
prop: string; }functionf(x: Thing){deletex.prop;// throws error = The operand of a 'delete' operator must be optional.} { propToDelete, ...otherProps} = youObjectreturnotherProps 这样您就可以使用 otherProps 对象而不会中断
/*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.pr...