装饰器不支持函数调用

2024-05-09

我在 ng build --prod 时遇到问题:

装饰器不支持函数调用,但在“initialState”中调用了“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"

感谢您的帮助


你可以使用工厂方法吗? 而不是打电话new Ui() or new Config()使用返回新 Ui 或新 Config 对象的函数,如下所示:

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

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

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

或者他们不会被召唤?

或者只是做

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

因为初始状态只会绑定一次。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

装饰器不支持函数调用 的相关文章

随机推荐