错误中的错误遇到静态解析符号值

时间:2017-04-29 10:16:51

标签: angular typescript

我刚刚在angular-cli下迁移了我的项目,我在启动它时遇到了这个错误:

  

ERROR in Error遇到静态解析符号值。   不支持函数调用。考虑更换功能或   lambda引用了一个导出函数(位置63:45)   原始.ts文件),解析符号AppModule   C:/Data/Private/Innovation/EV/ev-dashboard/src/app/app.module.ts

对应于app.module.ts中的APP_INITIALIZER:

...
providers: [ // expose our Services and Providers into Angular's dependency injection
    APP_PROVIDERS,
    ConfigService,
    { provide: APP_INITIALIZER, useFactory: (config: ConfigService) => () => config.load(), deps: [ConfigService], multi: true }
...

有趣的是,当我评论这一行时,它会很好地启动并在之后取消注释,这次触发编译时没有错误!

你有什么想法吗?

谢谢, 哔叽。

1 个答案:

答案 0 :(得分:1)

您需要提取以下功能:

export function configFactory(config: ConfigService) {
  return () => config.load()
}

...
providers: [{ 
  provide: APP_INITIALIZER, 
  useFactory: configFactory, 
  deps: [ConfigService], 
  multi: true 
}

另见