在切换到Angular 5.2.3,并使用"deprecation": true
的林特规则运行ng cli
之后,我在许多测试中得到以下错误:
get is deprecated: from v4.0.0 use Type<T> or InjectionToken<T>
抱怨的行类似于
fixture.debugElement.injector.get(MyService)
其中MyService
是一个用于依赖注入的类。
我不知道新的语法应该是什么,因为
fixture.debugElement.injector.get<MyService>(MyService)
给出了一个编译错误,即Argument of type 'typeof MyService' is not assignable to parameter of type 'Type<MyService> | InjectionToken<MyService>'.
使用注入器以避免弃用错误的正确方法是什么?
编辑:有关Angular9更新,请参阅下面的答案。
编辑:这似乎与MyService是一个抽象类有关。如果我使用非抽象类,则.get<T>(T)
语法可以工作。
编辑:修复显然正在等待一些公关工作- https://github.com/angular/angular/pull/25222
https://stackoverflow.com/questions/48660938
复制相似问题