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



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

export function getMyFactory(): () => Window {
return () => window;
}
@NgModule({
providers: [
{ provide: WindowRef, useFactory: getMyFactory() },
],
})
export class MyModule {}

但这失败了:

为导出的符号"我的模块"生成的元数据中遇到错误:

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

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

解决方案基本上是:

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


所以就我而言,我已经通过替换来解决:

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

跟:

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

只需像这样添加// @dynamic注释:

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

角度文档中的更多信息

同样的错误发生在我 Angular 库中。

我通过在angularCompilerOptions下设置"strictMetadataEmit": false,tsconfig.lib.json来忽略它。

我在尝试将承诺作为函数返回时遇到了同样的问题,并替换了这个:

export function myFunc(): Function {
const result = () => ...
return result;
}

跟:

export function myFunc(){
const result = () => ...
return result;
}

相关内容

  • 没有找到相关文章

最新更新