angular – 装饰器不支持函数调用

前端之家收集整理的这篇文章主要介绍了angular – 装饰器不支持函数调用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在构建时我遇到了一个问题–prod:

装饰器不支持函数调用,但’init’中调用’Ui’

export const initialState: AppState = {
   userAisles: null,userItems: null,userLists: null,userShops: null,ui: new Ui(),config: new Config(),};

和我的Ui班:

export class Ui {
   loading: false;
   itemsOrder = 'name';
   itemsOrderSense = 'ASC';
   listsOrder = 'date';
   listsOrderSense = 'ASC';
   listsConsultOrder = 'name';
   listsConsultOrderSense = 'ASC';
   history: string = null;
   resolved = false;

   constructor(values: Object = {}) {
      return Object.assign(this,values);
   }
}

如果我在initialState中对Ui类进行硬编码,它会起作用然后抱怨Config类,所以问题就出现了.我没有找到任何解决方案来摆脱编译错误消息.

这是我的配置:

"@angular/animations": "^6.0.3","@angular/common": "^6.0.3","@angular/compiler": "^6.0.3","@angular/core": "^6.0.3","@angular/forms": "^6.0.3","@angular/http": "^6.0.3","@angular/platform-browser": "^6.0.3","@angular/platform-browser-dynamic": "^6.0.3","@angular/router": "^6.0.3","@ngrx/effects": "^6.1.0","@ngrx/router-store": "^6.1.0","@ngrx/store": "^6.1.0","@ngrx/store-devtools": "^6.1.0","angular-hammer": "^2.2.0","bootstrap": "4.1.3","core-js": "^2.5.4","font-awesome": "~4.7.0","moment": "^2.20.1","ng2-dragula": "^2.0.2","ngx-facebook": "^2.4.0","primeng": "^6.1.2","rxjs": "^6.2.2","rxjs-compat": "^6.2.2","zone.js": "^0.8.26"

谢谢你的帮助

解决方法

你能用工厂方法吗?
而不是调用新的Ui()或新的Config()使用一个返回一个新的Ui或一个新的Config对象的函数,如下所示:

export const uiFactory(){
   return new Ui();
}

export const configFactory(){
   return new Config();
}

export const initialState: AppState = {
   userAisles: null,ui: uiFactory,config: configFactory
};

或者他们不会被召唤?

或者只是做

const config = new Config();
{.... config: config .....}

因为initialState只会绑定一次.

@H_403_54@

猜你在找的Angularjs相关文章