如何使泛型TypeScript接口从另一个泛型接口扩展?

如何使泛型TypeScript接口从另一个泛型接口扩展?,typescript,Typescript,我有一个界面,包含几个元素: export interface Item { id: string; code: string; createdAt: string; updatedAt: string; level: number; seq: number; hasChildren: boolean; parentObject?: Item; children?: Item[]; } 我想要的是类似于部分的东西,我在这里发现了它: 但是,我想将其中一个

我有一个界面,包含几个元素:

export interface Item {
  id: string;
  code: string;
  createdAt: string;
  updatedAt: string;
  level: number;
  seq: number;
  hasChildren: boolean;

  parentObject?: Item;
  children?: Item[];
}
我想要的是类似于
部分
的东西,我在这里发现了它:

但是,我想将其中一个字段设置为必填项。我实施了以下措施:

export interface ItemUpdate extends Partial<Item> {
  id: string;
}

我正在运行Angular 6.1.5,它随Typescript 2.9一起提供(据我所知)。

错误消息已过时;有一种方法可以更新它。当前的规则是,类或接口只能扩展对象类型或对象类型与静态已知成员的交集,因为编译器需要检查类或接口中声明的属性类型是否与基类型的相应属性(如果有)的类型兼容。
Partial
的成员是静态已知的,而
Partial
的成员不是静态已知的。解决方法是使用交叉点类型而不是子接口:

export type UpdateOf<T> = Partial<T> & {id: string};
导出类型UpdateOf=Partial&{id:string};
error TS2312: An interface may only extend a class or another interface.
export type UpdateOf<T> = Partial<T> & {id: string};