我有两个接口如下:
interface PublicUser {
userId? : string
name? : string
}
interface User extends PublicUser{
email? : string
phonenumber? : string
}
所有数据都作为用户存储在数据库中。我想要做的是从用户数据中删除私有属性。所以我这样做如下:
const user = serverData as User;
let visibleUser : PublicUser = PublicUser()
if(user.userId) visibleUser.userId = user.userId
if(user.name) visibleUser.name = user.name
sendPublicProfileToAnyone(visibleUser);
我不认为这是一个好的解决方案。因为如果有另一个公共财产,比如年龄。必须有一种方法,我只能从完整数据集中获取所有 PublicUser 属性。