我已将我的功能分为ServiceBase,它执行基本操作,以及具有特定功能的实际服务。 ServiceBase需要使用一些常用服务,而特定服务需要使用其特定服务。
所以我有ServiceBase:
export class ServiceBase {
constructor(private commonService: CommonService){}
}
现在我遇到了问题,因为我需要扩展ServiceBase并注入其他一些服务。我试过了:
@Injectable()
export class MyService extends ServiceBase {
constructor(private commonService: CommonService, private dedicatedService: DedicatedService) {
super(commonService)
}
}
但是我收到错误,我覆盖了commonService的定义。
另一方面,以下内容无法编译,因为我需要使用commonService调用super:
@Injectable()
export class MyService extends ServiceBase {
constructor(private dedicatedService: DedicatedService) {
super()
}
}
如何纠正这种情况下的句柄?
答案 0 :(得分:1)
尝试删除child中commonService上的“private”,并在parent protected中使commonService。所以它看起来像:
export class ServiceBase {
constructor(protected commonService: CommonService){}
}
@Injectable()
export class MyService extends ServiceBase {
constructor(commonService: CommonService, private dedicatedService: DedicatedService) {
super(commonService)
}
}
你仍然可以通过this.commonService在子类中使用commonService。