我正在使用带有TypeScript的Angular 2来构建前端应用程序。我有一个Generic Repository类:
export abstract class Repository<T extends IEntity>
{
constructor(protected _http: Http) {}
add(entity: T) {}
delete(entity: T) {}
list() {}
get(id: number) {}
update(entity: T) {}
}
我的服务类然后扩展我的通用存储库类:
export class Service extends Repository<Entity>
{
constructor(protected _http: Http) {
super(Http);
}
}
当我在Parent类中使用依赖注入时出现问题。然后我如何将其转换为子类?
当TypeScript编译时,我收到以下错误:
错误TS2345:Http&#39;类型&#39;类型的参数不能转让给 类型参数&#39; Http&#39; .Property&#39; _backend&#39;在类型中缺失 &#39;键入Http&#39;
我不确定如何纠正此错误。任何帮助将不胜感激。
答案 0 :(得分:7)
你只需要转发你传递的实例(而不是你所做的类型):
export class Service extends Repository<Entity>
{
constructor(protected _http: Http) {
super(_http);
}
}
如果子类中没有引入其他参数,也不需要在子类构造函数中执行其他代码,则可以省略构造函数。