类型搜索没有兼容的呼叫签名Angular 5 +

时间:2018-08-23 15:40:13

标签: angular typescript

我从here获得的addItem函数给了我这个错误消息:

  

错误TS2349(TS)无法调用类型缺少调用的表达式   签名。 “搜索”类型没有兼容的呼叫签名。

接口:

export interface Search {
    name: String;
    type: String;
    inputValue: String;
}

偏差:

array : Search[];
searches: Search[];

TypeScript:

addItems(startIndex, endIndex, _method) {
    let movieIndex = 0
    for (let i = 0; i < this.sum; ++i) {
      movieIndex++;
      if (movieIndex >= this.searches.length) movieIndex = 0;
      this.array[_method](this.searches[movieIndex]);
    }
}

发票:

this.addItems(startIndex, endIndex, 'push');

DataSource(来自节点服务器):

fetchSearches() {
this.searchService.getSearches()
  .subscribe((data: Search[]) => {
    this.searches = data
    this.searches.forEach(search => {
      search.inputValue = search.name;
    })
    console.log('Data requested...')   
  });
}

1 个答案:

答案 0 :(得分:0)

此声明

this.array[_method](this.searches[movieIndex]);

表示您尝试获取_method的第this.array项并想要通过参数()来调用它(this.searches[movieIndex]是函数的调用),但您的数组包含Search类型的元素,该元素不可调用

this.array[_method] ( this.searches[movieIndex] );
                    ^ ^------ parameter ------^ ^
                    ^ ------ function call -----^