2016-09-02 61 views
0

我是一个错误,类型'函数'不提供匹配下面的筛选器的签名。这是真的,因为过滤器需要一个特定的类型。如何定义我的回调以匹配过滤器所期望的?回调函数中的Typescript错误:类型'Function'不提供匹配的签名

private _getItemFilteredBy(itemName: string, Fn: Function): Observable<any[]> { 
    return this.getItemByName(itemName) 
     .map((items: any[]) => { 
      return items.filter(Fn); 
     }); 
} 

回答

3

过滤器需要一个谓词。将类型更改为(x:any) => boolean

private _getItemFilteredBy(itemName: string, Fn: (x:any) => boolean): Observable<any[]> { 
    return this.getItemByName(itemName) 
     .map((items: any[]) => { 
      return items.filter(Fn); 
     }); 
} 

如果你有比“任何”更具体的类型信息,我建议你更新是太多,但我已经张贴以上应该工作。

相关问题