将 APP_INITIALIZER 代码转换为较新的 ProvideAppInitializer 语法

问题描述 投票:0回答:1

我有一段来自角度模板的代码,如下所示,

{
    provide: APP_INITIALIZER,
    deps: [...config.mockApi.services],
    useFactory: () => (): any => null,
    multi: true,
}

我想将其转换为更新的 provideAppInitializer 语法。

我想出了下面的变换,但有错误。

provideAppInitializer(() => {
    const initializerFn = ()=> (inject([...config.mockApi.services]));
    return initializerFn();
  }),

“() => 未知”类型的参数不可分配给“() => void | 类型的参数”可观察|承诺'。 类型“未知”不可分配给类型“void |”可观察|承诺'.ts(2345)

有人可以帮忙吗?并解释那里发生了什么?

angular typescript app-initializer
1个回答
0
投票

问题是应用程序初始值设定项函数预计返回

void
Observable
Promise
。但是,在您的代码中,您将返回注入的令牌,这会导致此类型错误。

要解决此问题,只需确保您没有从注射中返回结果即可:

provideAppInitializer(() => {
  inject([...config.mockApi.services]);
}),
© www.soinside.com 2019 - 2024. All rights reserved.