Angular-具有参数和`super`调用的父类构造函数

时间:2018-07-18 20:16:34

标签: angular typescript inheritance constructor

因此,我有这个子类来实例化父级中未使用的服务:

export class ChildService extends ParentService {
  constructor(protected someService: SomeService) {
    super();
  }
}

父级实例化子级未使用的另一项服务:

export class ParentService {
  constructor(protected otherService: OtherService) {

  }
}

因此显然这行不通,我需要在super调用中发送参数。问题是,我真的不喜欢在孩子中实例化服务的想法,只是我可以将其发送给父母。这就是我到处都能找到的解决方案。

我还发现了另一种方法,那就是在父级中使用ServiceLocator.injector以避免将服务用作构造函数参数:

export class ParentService {
  protected otherService: OtherService;

  constructor() {
    this.otherService = ServiceLocator.injector.get(OtherService);
  }
}

但是老实说,它也有些混乱。我正在为此寻找干净的解决方案。

我的特定用例是使用data.service的{​​{1}},并由特定于类的服务继承。然后将在HttpClient中处理所有HTTP调用。也许有更好的方法来实现这种抽象!

0 个答案:

没有答案