我有一段来自角度模板的代码,如下所示,
{
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)
有人可以帮忙吗?并解释那里发生了什么?
问题是应用程序初始值设定项函数预计返回
void
、Observable
或 Promise
。但是,在您的代码中,您将返回注入的令牌,这会导致此类型错误。
要解决此问题,只需确保您没有从注射中返回结果即可:
provideAppInitializer(() => {
inject([...config.mockApi.services]);
}),