Angular 2:如何在基本组件中进行构造函数注入?

Angular 2:如何在基本组件中进行构造函数注入?,angular,inheritance,dependency-injection,Angular,Inheritance,Dependency Injection,我目前的解决办法是: export class BaseComponent { constructor(public myService: MyService) {} } export class ChildComponent extends BaseComponent { constructor(public myServiceRenamed: MyService) { super(myServiceRenamed); } } 在ChildComponent中不需要My

我目前的解决办法是:

export class BaseComponent {
  constructor(public myService: MyService) {}
}

export class ChildComponent extends BaseComponent {
  constructor(public myServiceRenamed: MyService) {
    super(myServiceRenamed);
  }
}
在ChildComponent中不需要MyService,理想情况下,我只想在BaseComponent的构造函数中声明它,但是我需要在super()调用中发送null,不幸的是服务没有定义

有可能做到这一点吗?

你做不到

您将不得不在某个时候注入依赖项

因为您不会创建基本组件的实例,所以您将无法执行此操作

您可以做的是创建一个接口,强制组件具有这种依赖性。您仍然需要注入依赖项,但至少您知道实现接口的每个类都将具有此必需的依赖项


也许你可以为此制作一个装饰器,但我对这方面的了解还不够,无法帮助你,对不起:/

你在ChildComponent类声明中没有缺少
implements
子句吗?@pixelbits已经添加了“extends”,谢谢你的发现