使用 typescript ,我可以轻松地将类绑定(bind)到自身:

bootstrap(MyAppComponent, [MyClass]);

但是,我想将我的类绑定(bind)到一个接口(interface),例如:
boostrap(MyAppComponent, [???]);

这样我就可以按以下方式注入(inject)它:
class MyAppComponent {
    constructor(my_class : IMyClass){
    }
};

在Angular2中有可能吗?如果是,我该如何指定绑定(bind)?

最佳答案

简而言之,问题在于编译 typescript 时接口(interface)会消失。因此,您必须将@Inject与字符串一起使用。

或者还有另一种选择,如果您检查the last article of Victor Savkin ,则可以在注释中找到它:


constructor(@Inject("ILoginService") s:ILoginService).


interface ILoginService { login(credentials);}
const ILoginService = new OpaqueToken("LoginService");


constructor(@Inject(ILoginService) s:ILoginService).

关于dependency-injection - 将类绑定(bind)到接口(interface),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32254952/

10-12 13:11