首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >get已弃用:从v4.0.0开始使用Type<T>或InjectionToken<T>

get已弃用:从v4.0.0开始使用Type<T>或InjectionToken<T>
EN

Stack Overflow用户
提问于 2018-02-07 18:04:42
回答 4查看 15.2K关注 0票数 34

在切换到Angular 5.2.3,并使用"deprecation": true的林特规则运行ng cli之后,我在许多测试中得到以下错误:

代码语言:javascript
复制
get is deprecated: from v4.0.0 use Type<T> or InjectionToken<T>

抱怨的行类似于

代码语言:javascript
复制
fixture.debugElement.injector.get(MyService)

其中MyService是一个用于依赖注入的类。

我不知道新的语法应该是什么,因为

代码语言:javascript
复制
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

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48660938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档