Typescript如何将新项添加到空对象数组中

时间:2017-12-29 22:34:44

标签: javascript arrays typescript vuejs2 vue-component

我在vue 2中有一个用typescript编写的组件:

 data: {
    userfilterresults: []
  },
  mounted() {
    axios.get("/Tasks/GetTasks")
      .then(response => {
        this.userfilterresults = response.data;
      });
  },
  methods: {
    addtab() {
      // this push bellow is the reason of the error:
      this.userfilterresults.push({
        id : '-1',
        userid : '1',
        name : 'newtab'
      });

我想将新项目添加到现有数组userfilterresults但我有错误:参数类型{..}不能分配给类型的参数 如何将新项添加到数组中?

2 个答案:

答案 0 :(得分:1)

您需要为userfilterresults声明一种类型。

默认情况下,对于let x = []x的类型为never[]

您需要明确指定或将其标记为any[]。 e.g。

let x: any[] = []
let y: CustomType[] = []

我不熟悉Vue的类型,但这是潜在的原因。

尝试

data: {
  userfilterresults: [] as any[]
}

看看是否有帮助。

答案 1 :(得分:0)

  
    
      

userfilterresults:any = [];

             

addtab(){

  var obj={
     id : '-1',
    userid : '1',
    name : 'newtab'
    
  
     

}}

     
    
  this.userfilterresults.push(obj);