Angular 扩展已注入依赖项的服务库

Angular 扩展已注入依赖项的服务库,angular,dependency-injection,Angular,Dependency Injection,我已经将我的功能划分为执行基本操作的ServiceBase和具有特定功能的实际服务。ServiceBase需要使用一些公共服务,而特定服务需要使用它们的特定服务 因此,我有了ServiceBase: export class ServiceBase { constructor(private commonService: CommonService){} } 现在我遇到了一个问题,因为我需要扩展ServiceBase并注入一些其他服务。我试过: @Injectable() export c

我已经将我的功能划分为执行基本操作的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()
  }
}
如何正确处理这种情况?

尝试删除子级中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