回调函数上的Typescript错误:类型'Function'不提供签名匹配

时间:2016-09-02 11:46:01

标签: typescript

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

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

1 个答案:

答案 0 :(得分:6)

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

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

如果您的字体信息比“其他”更具体,我建议您更新,但我上面发布的内容应该有效。