Par*_*ngh 7 generics function typescript
我是ts的新手,但是我已经了解了java中泛型的概念。查询的是我具有三个功能:searchTrack,searchAlbum,searchArtist
searchTrack(query: string): Observable<Track[]> {
return this.search(query, 'track');
}
searchArtist(query: string): Observable<Artist[]> {
return this.search(query, 'artist');
}
searchAlbum(query: string): Observable<Album[]> {
return this.search(query, 'album');
}
Run Code Online (Sandbox Code Playgroud)
我想要此类中的通用功能“搜索”,该功能接受查询和实体类型并返回特定实体类型的Observable集合。我被困在这里。我如何使用泛型来指定函数的泛型返回类型。
search(query: string, type: string): Observable<Array<T>> {
return this.query(`/search`, [
`q=${query}`,
`type=${type}`
]);
}
Run Code Online (Sandbox Code Playgroud)
有什么办法可以实现?
尝试使用Array类而不是[]。还要在搜索功能上定义通用T类型。
search<T>(query: string, type: string): Observable<Array<T>> {
return this.query(`/search`, [
`q=${query}`,
`type=${type}`
]);
}
Run Code Online (Sandbox Code Playgroud)
您应该可以这样称呼它:
let result = search<Artist>('someQuery', 'artist');
Run Code Online (Sandbox Code Playgroud)
您可以在此处的《泛型》一章中的打字稿中找到有关泛型的更多信息。
| 归档时间: |
|
| 查看次数: |
8584 次 |
| 最近记录: |