Angular 扩展已注入依赖项的服务库
我已经将我的功能划分为执行基本操作的ServiceBase和具有特定功能的实际服务。ServiceBase需要使用一些公共服务,而特定服务需要使用它们的特定服务 因此,我有了ServiceBase:Angular 扩展已注入依赖项的服务库,angular,dependency-injection,Angular,Dependency Injection,我已经将我的功能划分为执行基本操作的ServiceBase和具有特定功能的实际服务。ServiceBase需要使用一些公共服务,而特定服务需要使用它们的特定服务 因此,我有了ServiceBase: export class ServiceBase { constructor(private commonService: CommonService){} } 现在我遇到了一个问题,因为我需要扩展ServiceBase并注入一些其他服务。我试过: @Injectable() export c
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()
}
}
如何正确处理这种情况?尝试删除子级中commonService上的“private”,并使父级中的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