装饰器不支持函数调用

时间:2017-12-31 13:49:34

标签: angular decorator aot

我正在尝试使用-aot选项(ng build -aot)构建应用。我有以下错误:

ERROR in Error during template compile of 'MyComponent'
  Function calls are not supported in decorators but 'classLogger' was called in 'cLog'
    'cLog' calls 'classLogger'.

但是我需要这个调用,我不知道如何更改代码以使其工作。

export function classLogger(_classOptions?) {
   const myLogger = new MyLogger();
   myLogger.options = Object.assign({}, defaultClassOptions, _classOptions);

   return myLogger.loggerCB;
}

// export function clog(options = defaultClassOptions): Function {
export function cLog(options?): Function {
   return loggingEnabled ? classLogger(options) : emptyClassDecorator();
}

P.S。类装饰器接受必须转移到装饰器补丁回调的选项。

1 个答案:

答案 0 :(得分:1)

我也遇到过这个问题。在我的情况下,我想覆盖BusyConfig参数。应用程序与ng serve一起正常运行,但是当我想要为生产Function calls are not supported in decorators but ...构建应用程序时,会发生异常。

我的解决方案如下: ng build --prod --aot=false

  

Angular Ahead-of-Time(AOT)编译器转换您的Angular HTML   和TypeScript代码在构建期间成为高效的JavaScript代码   浏览器下载并运行该代码之前的阶段。

ng build --prodng build --prod --aot

相同