Ser*_*gey 5 typescript angular
我在尝试在 Angular 8 中构建 prod 时遇到问题。错误是
ERROR in Error during template compile of 'AppModule'
  Function expressions are not supported in decorators in 'SocketLibModule'
    'SocketLibModule' references 'initializeApp'
      'initializeApp' contains the error at ../socket-lib/src/lib/socket-lib.module.ts(9,12)
        Consider changing the function expression into an exported function.
Run Code Online (Sandbox Code Playgroud)
什么指向我的库
export const SOCKET_CONFIG = new InjectionToken<SocketConfig>('SOCKET_CONFIG');
export function initializeApp(socketConfig: SocketConfig) {
  return (uriConfig: any) => {
    return () => uriConfig.load(socketConfig);
  };
}
@NgModule()
export class SocketLibModule {
  public static forRoot(socketConfig: SocketConfig): ModuleWithProviders {
    return {
      ngModule: SocketLibModule,
      providers: [
        {
          provide: SOCKET_CONFIG,
          useValue: socketConfig
        },
        {
          provide: APP_INITIALIZER,
          useFactory: initializeApp(socketConfig),
          deps: [ConfigInitService, HttpClientModule],
          multi: true
        },
        HttpClientModule
      ]
    };
  }
}
Run Code Online (Sandbox Code Playgroud)
错误点 (9,12)return (uriConfig: any) => {仅在左括号处指代这一点。
我试图将箭头函数更改为常规但没有任何更改以及错误点 (9,12)
小智 5
useFactory: initializeApp(socketConfig),
Run Code Online (Sandbox Code Playgroud)
这条线是问题。
应用初始化程序应该是一个工厂:这意味着它应该是
useFactory: initializeApp,
Run Code Online (Sandbox Code Playgroud)
否则,您将返回一个函数调用,这在 typescript 装饰器中是被禁止的(不仅仅是在 Angular 中,或者是第 8 版)
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1951 次  |  
        
|   最近记录:  |