类型“”中缺少Typescript“属性”,但类型为“从不”`

类型“”中缺少Typescript“属性”,但类型为“从不”`,typescript,Typescript,我想要实现的是引用原始接口,并删除一些属性。这是我的原始界面: 导出接口IINVAITIONS{ 父:Parse.User; 访客:访客;; 日期:iInvitationDate和PIN[]; } 当用户发起邀请时,他不应将parent作为参数。将在保存到数据库之前自动分配。所以我做了一个新的接口来省略它: 导出接口IInvitations扩展IInvitations{ 家长:从来没有; } 但是,我无法成功地将值分配给此接口 let数据:ICInvitations={ 参观者:参观者,,

我想要实现的是引用原始接口,并删除一些属性。这是我的原始界面:

导出接口IINVAITIONS{
父:Parse.User;
访客:访客;;
日期:iInvitationDate和PIN[];
}
当用户发起邀请时,他不应将
parent
作为参数。将在保存到数据库之前自动分配。所以我做了一个新的接口来省略它:

导出接口IInvitations扩展IInvitations{
家长:从来没有;
}
但是,我无法成功地将值分配给此接口

let数据:ICInvitations={
参观者:参观者,,
数据:[……]
}

它显示类型中缺少
属性“parent”。但是类型是never,我没有给它分配任何内容。

正如Jeff所提到的,虽然不能从接口中删除属性,但可以通过这样做重用大部分属性(
ommit
随TypeScript 3.5一起提供):

导出接口ICInvitations扩展忽略{
父母?:从不;
}

parent?:never
部分是可选的,但是如果有人试图使用为
parent

设置的值来构造实现此接口的内容,则会让您出错。您无法删除派生类型中的属性,只能将其添加。如果要隐藏这些成员,则必须使用composition来隐藏实例并仅公开所需的成员。要么这样,要么颠倒接口或其他方法。
export interface ICInvitations extends Omit<IInvitations, 'parent'> {
  parent?: never;
}