我要实现的是引用原始接口,并删除一些属性。这是我的原始界面:
export interface IInvitations {
parent: Parse.User;
visitor: Visitors;
dates: IInvitationDateAndPin[];
}
用户发起邀请时,不应将parent
作为参数。保存到数据库之前,它将自动分配。所以我做了一个新的界面来忽略它:
export interface ICInvitations extends IInvitations {
parent: never;
}
但是后来我无法成功为该接口分配值。
let data: ICInvitations = {
visitor: Visitors,
datas: [...]
}
它显示Property 'parent' is missing in type
。但是类型永远不会,我没有给它分配任何东西。
答案 0 :(得分:1)
如Jeff所述,虽然您不能从接口中删除该属性,但是可以通过执行以下操作来重用它的大部分内容(Omit
随TypeScript 3.5一起提供):
export interface ICInvitations extends Omit<IInvitations, 'parent'> {
parent?: never;
}
parent?: never
部分是可选的,但是如果有人试图构造一个为parent
设置值的实现此接口的东西,则会使您收到错误消息。