【发布时间】:2022-01-05 17:03:06
【问题描述】:
为了避免 JavaScript delete 运算符 (ref:https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/delete) 我目前正在使用对象解构来摆脱私有属性:
//sample helper-function in ts
const sanitizeUser = (user: User): UserSanitized => {
const { googleData, ...rest } = user
return rest
}
我的问题是,返回值sanitizeUser 是否可以安全使用,而无法恢复googleData 属性。
【问题讨论】:
-
是的,此函数将剥离
googleData属性并返回不存在googleData属性的对象,除非 TypeScript 转译器中存在任何类型的漏洞。 -
为什么用户可以对所述对象进行任意操作?您是否将其传递给某些沙盒上下文,允许用户提交的代码在其中运行,或者发生了什么?
标签: javascript typescript delete-operator