Angular 2依赖注入:作为父类的主机

时间:2016-01-27 06:28:15

标签: dependency-injection typescript angular

我有一个简单的问题: 我可以将接口或抽象类(或者只是至少一个父类)绑定为组件的@Host()吗?似乎DI系统无法解决多态性。

我的界面如下:

export interface Component {
}
来自此界面的

和子组件:

...
export class SomeComponent implements Component {
...
}

现在我想创建Directive,并使用Component作为主机,即使我将此指令放在SomeComponent上也是如此。

像:

constructor(private host: Component) { }

1 个答案:

答案 0 :(得分:2)

实际上,运行时没有任何对应的TypeScript接口。这意味着您无法将它们用作类型。

如果您在服务中尝试此操作:

1

尝试从其他模块导入时,我们将会定义:

export interface SomeInterface {
  someMethod();
}

export class HeroService implements SomeInterface {
  (...)
}

这是一个描述这个问题的傻瓜:https://plnkr.co/edit/RT59B0tw40lnq85XMMi7?p=preview

希望它可以帮到你, 亨利