TypeScript类,它是泛型的具体类型的泛型

TypeScript类,它是泛型的具体类型的泛型,typescript,Typescript,登录操作的我的http响应: interface ILoginResponse { // ok message: string token: string; } 它插入到一个通用响应中,我想用于各种http响应: interface IResponse<TResponseData> { // ok Data: TResponseData; Errors: string[]; Status: number; } 接口i响应{//ok 资料:树冠; 错误

登录操作的我的http响应:

interface ILoginResponse {   // ok
  message: string
  token: string;
}
它插入到一个通用响应中,我想用于各种http响应:

interface IResponse<TResponseData> {    // ok
  Data: TResponseData;
  Errors: string[];
  Status: number;
}
接口i响应{//ok
资料:树冠;
错误:字符串[];
状态:编号;
}
我想在这样的通用抽象服务中使用:

abstract class HttpService<TRequest, IResponse<TResponseData>> {   // ERROR
  protected onSuccess(responseData: TResponseData);  // I want to do this (hide the wrapper from the subclass)
}
class LoginService extends HttpService<ILoginRequest, ILoginResponse> { }  // ok
抽象类HttpService{//错误
protectedonsuccess(responseData:tresponta);//我想这样做(对子类隐藏包装器)
}
我想为各种http操作扩展它,如下所示:

abstract class HttpService<TRequest, IResponse<TResponseData>> {   // ERROR
  protected onSuccess(responseData: TResponseData);  // I want to do this (hide the wrapper from the subclass)
}
class LoginService extends HttpService<ILoginRequest, ILoginResponse> { }  // ok
class LoginService扩展了HttpService{}//ok
问题出在
HttpService
类中:
“找不到名称'trea'”


如何执行此操作?

您可以将第二个参数约束为extends
IResponse

abstract class HttpService<TRequest, TResponse extends IResponse<any>> { }

谢谢这是可行的,但并没有给我我所希望的-你看,这意味着在子类中我必须使用
IResponse
,这是可以的,但我希望能够单独使用内部类型
ILoginResponse
。我想对子类隐藏包装器。我假设这是不可能的?例如,我编辑了问题,添加了
protectedonsuccess(responseData:trespona)到基类,这样你就明白我的意思了。