gpt4 book ai didi

angular - get 已弃用 : from v4. 0.0 使用 Type 或 InjectionToken

转载 作者:太空狗 更新时间:2023-10-29 16:54:31 25 4
gpt4 key购买 nike

切换到 Angular 5.2.3 并运行 ng cli 后linter 规则为 "deprecation": true我在许多测试中遇到以下错误:

get is deprecated: from v4.0.0 use Type<T> or InjectionToken<T>

提示的行是这样的

fixture.debugElement.injector.get(MyService)

MyService是一个用于依赖注入(inject)的类。

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

fixture.debugElement.injector.get<MyService>(MyService)

给出一个编译错误 Argument of type 'typeof MyService' is not assignable to parameter of type 'Type<MyService> | InjectionToken<MyService>'.

使用注入(inject)器以避免弃用错误的正确方法是什么?

编辑:请参阅下面的答案,了解 Angular9 更新。

编辑:这似乎与 MyService 是一个抽象类有关。如果我使用非抽象类,.get<T>(T)语法有效。

编辑:修复显然正在等待一些公关工作 - https://github.com/angular/angular/pull/25222

最佳答案

更好的是,您可以尝试将您的服务转换为 Type,然后像这样使用注入(inject)器:

import { Type } from '@angular/core';

fixture.debugElement.injector.get<MyService>(MyService as Type<MyService>)

关于angular - get 已弃用 : from v4. 0.0 使用 Type<T> 或 InjectionToken<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48660938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com