Fra*_*rzi 8 typescript angular-providers angular-factory angular angular-dependency-injection
在我的 Angular 应用程序中,我试图在我的模块中使用工厂提供程序:
export function getMyFactory(): () => Window {
return () => window;
}
@NgModule({
providers: [
{ provide: WindowRef, useFactory: getMyFactory() },
],
})
export class MyModule {}
Run Code Online (Sandbox Code Playgroud)
但这失败了:
在为导出的符号“MyModule”生成的元数据中遇到错误:
收集的元数据包含运行时会报错:Lambda not supported
Fra*_*rzi 18
我在 GitHub 的一个线程上找到了一个简单的解决方案:haochi发布的静态函数中不支持 Arrow lambda
解决方法基本上是:
将结果分配给变量,然后返回变量
所以就我而言,我已经通过替换解决了:
export function getMyFactory(): () => Window {
return () => window;
}
Run Code Online (Sandbox Code Playgroud)
和:
export function getMyFactory(): () => Window {
const res = () => window;
return res;
}
Run Code Online (Sandbox Code Playgroud)
只需添加这样的// @dynamic
评论:
// @dynamic
export function getMyFactory(): () => Window {return () => window;}
Run Code Online (Sandbox Code Playgroud)
角度文档中的更多信息
我在 Angular 库中也发生了同样的错误。
我通过设置忽略了它"strictMetadataEmit": false,
的tsconfig.lib.json
下angularCompilerOptions
。
归档时间: |
|
查看次数: |
8359 次 |
最近记录: |