Angular7 AOT:不支持表达形式



在angular7中,我想创建一个这样的util类:

export class FieldNameUtils {
  static toHump(name: string) {
    return name.replace(/_(w)/g, function (all, letter) {
      return letter.toUpperCase();
    });
  }
  static toLine(name: string) {
    return name.replace('/([A-Z])/g', '_$1').toLowerCase();
  }
}

它与开发模式合作良好,但是当我与生产构建时,我会遇到这样的错误:

field.name.utils.ts:4:25: Metadata collected contains an error that will be reported at runtime: Expression form not supported.
  {"__symbolic":"error","message":"Expression form not supported","line":3,"character":24}

我试图将/_(w)/g更改为静态变量,但仍然有错误,我知道不支持Lambda表达式,因此我已经将(all, letter) => ...更改为function(all, letter){ ... }该错误表明不支持replace(后的表达式,但它是RegExp

您是否尝试过如下设置正则罚款?

const regex = new RegExp('_(w)', 'g');

尝试将类标记为

// @dynamic
export class YourUtilClass {
}

在使用Angular库期间,我遇到了这个问题。

最新更新