从RxJS文档中,我们可以了解到我们可以使用以下代码创建自定义运算符:
const takeEveryNthSimple = (n: number) => <T>(source: Observable<T>) =>
source.pipe(filter((value, index) => index % n === 0 ))
在这种情况下,<T>(source: Observable<T>)
我想了解泛型的类型。
请帮助。
答案 0 :(得分:2)
将泛型视为具有相同功能的一种方法,该函数可以返回传递的任何类型。
例如,执行get
请求的函数。
function doGet<T>(endpoint: string): Observable<T> {
return Observable.of(fetch(endpoint));
}
此函数将返回T
类型的可观察对象;
现在,假设您有一个REST API,可以获取Posts
,Users
,Tags
。您可以将此函数与类型定义一起使用
interface Posts {
//...
}
interface Users {
//...
}
interface Tags {
//...
}
doGet<Posts>('/api/posts') => Observable<Posts>;
doGet<Users>('/api/users') => Observable<Users>;
doGet<Tags>('/api/tags') => Observable<Tags>;
在您提供的示例中,传递给嵌套函数的Observable
的类型为T
,是在通用类型中定义的。
希望这很清楚,可以回答您的问题。