【发布时间】:2019-05-20 14:50:34
【问题描述】:
最近,我正在研究一组都继承自 Service 基类的服务。基类采用 HttpClient 的构造函数 (DI) 参数。
当对子类使用自动完成时,我可以看到它们的构造函数参数正确地解释了基类需要HttpClient 的事实。但是,除非我在子类中明确放置一个虚拟构造函数,否则 Angular 在运行时会抱怨以下内容:
错误:无法解析 MyService 的所有参数:(?)。
为什么我在子类中需要一个无用的构造函数?
注意我的代码结构如下:
export abstract class MyBaseService {
constructor(protected http: HttpClient) { }
...
}
export class MyService extends MyBaseService {
constructor(http: HttpClient) {
super(http); // don't understand why we need this...
}
...
}
注意:这似乎与抽象类密切相关;普通类的子类似乎没有表现出这种行为。
【问题讨论】:
-
为简洁起见省略了导入,但您可以假设所有编译都正确。
标签: angular typescript