2016-09-02 1 views
0

Ich bin ein Fehler, dass der Typ "Funktion" bietet keine Übereinstimmung für die Signatur für den Filter unten. Das ist richtig, weil Filter einen bestimmten Typ erwartet. Wie würde ich meinen Rückruf so definieren, dass er dem entspricht, was der Filter erwartet?Typescript Fehler bei Callback-Funktion: Geben Sie "Funktion" bietet keine Übereinstimmung für die Signatur

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

Antwort

3

Filter benötigt ein Prädikat. Ändern Sie den Typ zu (x:any) => boolean

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

Wenn Sie spezifischeren Typ Informationen als ‚ANY‘, würde ich empfehlen, dass zu aktualisieren, aber was ich oben geschrieben funktionieren sollte.

Verwandte Themen