问题:
我正在尝试确定是否可以扩展泛型。
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 {}