Typescript定义必须具有ID的对象数组:作为其属性之一的数字

qyswt5oh  于 2023-01-06  发布在  TypeScript
关注(0)|答案(1)|浏览(185)

我想允许任何形状的对象数组,只要它们有id: number
那么,无论是OrderModel数组还是UserModel数组(两者都有id: number),如何定义这样的数组呢?
导出接口项目{ id:number; //其他值都不重要}

fykwrbwg

fykwrbwg1#

考虑到数组是covariant,只需将Item定义为:

interface Item {
  id: number;
}

假设您有以下类型:

interface OrderModel {
  id: number;
  type: "order";
  // other props
}

interface UserModel {
  id: number;
  type: "user";
  // other props
}

允许以下情况:

declare const os: Array<OrderModel>;
declare const us: Array<UserModel>;

declare function doStuff(xs: Array<Item>): unknown;

doStuff(os);
doStuff(us);

Playground

相关问题