TypeScript:使用泛型扩展吗?

时间:2019-11-11 16:27:03

标签: typescript generics

问题:

我正在尝试确定是否可以扩展泛型。

API的项目和响应

我正在使用具有多种项目类型的API服务,例如,如果项目类型用于用户

interface IUser {
  email: string;
  id: string;
  displayName: string;
}

从API请求特定项目时,响应例如是用户

interface IUserResponse {
  '@odata.context': string;
  email: string;
  id: string;
  displayName: string;
}

从API请求项目列表时,响应例如是用户

interface IUserResponseArray {
  '@odata.context': string;
  value: [ {
      email: string;
      id: string;
      displayName: string;
    },
    ...
  ]
}

API对IUser的响应[非通用]

接受这两个响应,都具有以下基础:

interface IResponseBase {
  '@odata.context': string;
}

从此基础开始,IUser响应接口被重构:

interface IUserResponse extends IUser, IResponseBase {}

interface IUserResponseArray extends IResponseBase {
  value: IUser[]
}

API的常规响应

接下来,由于此API支持多种类型的项目,因此应将响应接口设为通用。

做一系列通用项目,使IUserResponseArray通用:

interface IResponseArray<T> extends IResponseBase {
  value: T[];
}

问题type name expected

如何使IUserResponse通用。以下定义通用类的尝试无效,IDE中的错误提示为type name expected

interface IResponse<T> extends ???<T>???, IResponseBase {}

0 个答案:

没有答案
相关问题