如何将对象分配给空数组

时间:2019-12-11 07:08:49

标签: angular typescript

在我的angular6应用程序中,

我声明了以下空数组:

conversation=[]

我在共享模块中有一个构造函数,它确实初始化下面的对话对象是代码

export class messageThread {
    internalId?: number;
    unreadMessageCount?: number;
    subject?: string;
    managerCode?: string;
    constructor(json?: any) {
        if ( !json ) return;
        this.internalId= json.internalId || 0;
        this.unreadMessageCount=json.internalId || 0;;
        this.subject = json.internalId || '';
        this.managerCode =json.managerCode|| '';

    }
}

但是,如果在我的ts文件中,请按照以下说明操作。

this.conversation = new dataModel.messageThread (); 

它给我一个错误:说只能使用push,pop,我知道这是因为我已经用空数组初始化了它,并且确实希望将数组作为赋值,是否有任何方法可以将对象赋给一个空数组,或者我在这里丢失了一些东西

4 个答案:

答案 0 :(得分:1)

也许您想输入数组:

public conversation: messageThread [] = [];

并推送值:

this.conversation.push(new dataModel.messageThread());

答案 1 :(得分:1)

在使用angular时,请始终记住,angular是javascript框架,因此您可以根据自己的问题在angular中使用任何javascript函数,您可以在数组上简单地使用.push()函数;

 var abc = [];
    obj = {itemName:'paste',itemPrice: '50$'};
    
    abc.push(obj);
    
    
    console.log(abc);
    

答案 2 :(得分:0)

您可以像这样使用对象解构...

conversation=[];
obj = {
  itemName:'paste',
  itemPrice: '50$'
}

ngOnInit(){
   this.conversation = [ { ...this.obj } ];
}

答案 3 :(得分:0)

将对象分配给Array类型没有任何意义。如果要将对象关联到conversation变量。为什么不输入conversation的类型或将其分配为空对象。 conversation = {},然后使其等于this.conversation = new dataModel.messageThread ();