看这段代码:
product$: Observable<Product> = this.currentProductService.getProduct().pipe(this.jerryfilter);
pipe接受一个参数,类型为OperatorFunction<Product, Product>, 这个类型是一个函数,
接收的类型参数为Product,Product,返回类型仍然为Observable:
因此定义一个函数jerryfilter,类型就为OperatorFunction<Product, Product>:
jerry2的实现,一个一元函数,返回类型boolean:
jerrytest2(product: Product): boolean {
const result = !!product;
if (result === false) {
console.log('false!');
}
return result;
}
同样,pipe还可以传一个map操作进去,该map操作实现的函数接收的类型参数为Product和string,即将product数据映射成string,再用Observable包裹:
可以用这种精炼的箭头函数表示法:
jerrymap: OperatorFunction<Product, string> =
map(product => product.name);
也可以用自己实现的函数替代product => product.name: