首页 > 解决方案 > Angular:收集的元数据包含将在运行时报告的错误:不支持 Lambda

问题描述

在我的 Angular 应用程序中,我试图在我的模块中使用工厂提供程序:

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

@NgModule({
  providers: [
    { provide: WindowRef, useFactory: getMyFactory() },
  ],
})
export class MyModule {}

但这失败了:

为导出的符号“MyModule”生成的元数据中遇到错误:

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

标签: angulartypescriptangular-providersangular-factoryangular-dependency-injection

解决方案


我在 GitHub 的一个线程上发现了一个简单的解决方案:haochi发布的静态函数中不支持 Arrow lambda

解决方案基本上是:

将结果分配给变量,然后返回变量


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

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

和:

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

推荐阅读