Angular:收集的元数据包含将在运行时报告的错误:不支持 Lambda

标签 angular typescript angular-providers angular-factory angular-dependency-injection

在我的 Angular 应用程序中,我尝试使用 factory provider在我的模块中:

export function getMyFactory(): () => Window {
  return () => window;
}

@NgModule({
  providers: [
    { provide: WindowRef, useFactory: getMyFactory() },
  ],
})
export class MyModule {}
但这失败了:

Error encountered in metadata generated for exported symbol 'MyModule':

Metadata collected contains an error that will be reported at runtime: Lambda not supported

最佳答案

我在 GitHub 的一个线程上发现了一个简单的解决方案:Arrow lambda not supported in static function发表者haochi

解决方案基本上是:

assigning the result to a variable, then return the variable



因此,就我而言,我通过替换解决了:

export function getMyFactory(): () => Window {
  return () => window;
}

和:

export function getMyFactory(): () => Window {
  const res = () => window;
  return res;
}

关于Angular:收集的元数据包含将在运行时报告的错误:不支持 Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57594723/

相关文章:

angular - 一个应用程序中的多个 ngrx 存储

javascript - 在 TypeScript 中将带键值的对象反序列化/解析为不带键的对象

javascript - 如何在 Angular2 中为 @Input 设置默认参数?

mysql - 如何在 typeorm 和 Nest.js 中设置 bool 验证

visual-studio - 如何在 Visual Studio 2015 中启用 TypeScript 文件的预览面板?

angular - Webpack - 如何在运行时包含简单的配置文件?

angular - ionic 侧边栏滞后

Angular 4 - 如何为类型 ='input' 呈现 2 个小数位

angular - 没有简单组件的提供者