使用typescript,我可以轻松地将类绑定到它们自己:
引导(MyAppComponent,[MyClass]);
但是,我希望将我的类绑定到一个接口,如下所示:
boostrap(MyAppComponent,[???]);
这样我就可以按如下方式注入它:
类MyAppComponent{
构造函数(my_类:IMyClass){
}
};
这在Angular2中可能吗?如果是,如何指定绑定
简而言之,问题在于编译typescript时接口消失了。因此,您必须使用带有字符串的@Inject
或者还有另一种选择,如果您查看Victor Savkin的最后一篇文章,您可以在评论中找到:
一些背景。在TypeScript中,接口是结构化的,不会在运行时保留。因此,您必须按如下方式使用ILoginService:
构造函数(@Inject(“ILoginService”)s:ILoginService)。
您不必使用字符串-任何对象都可以在其中传递。我们实际上提供了一个名为OpaqueToken的对象,可用于此目的
接口ILoginService{login(凭证);}
const ILoginService=新的OpaqueToken(“登录服务”);
可以这样使用:
构造函数(@Inject(ILoginService)s:ILoginService)。