返回

一文带你看清Pipeable操作符的本质

前端

从 5.5 版本开始,rxjs 提供了“pipeable 操作符”,它们可以通过 rxjs/operators 来访问 (注意 "operators" 是复数)。相比较于通过在 rxjs/add/operator/* 中以“打补丁”的方式来获取需要用到的操作符,这是一种更好的方式。

为什么要使用 Pipeable 操作符?

使用 Pipeable 操作符有几个好处:

  • 它们更容易发现和使用。 Pipeable 操作符都位于 rxjs/operators 中,因此你可以在一个地方找到它们。这比在 rxjs/add/operator/* 中搜索操作符要容易得多。
  • 它们更安全。 Pipeable 操作符是使用 TypeScript 编写的,因此它们是类型安全的。这意味着你可以确信你正在正确地使用它们,并且不会出现意外的错误。
  • 它们更强大。 Pipeable 操作符可以与其他操作符组合使用,以创建更复杂的管道。这使你能够轻松地处理数据并执行复杂的转换。

如何使用 Pipeable 操作符?

使用 Pipeable 操作符非常简单。只需将它们添加到你的管道中,就像使用其他操作符一样。例如,以下代码使用 map 操作符将数字数组转换为字符串数组:

const numbers = [1, 2, 3];
const strings = numbers.pipe(
  map(n => n.toString())
);

与 rxjs/add/operator/ 的比较*

rxjs/add/operator/* 和 rxjs/operators 之间的主要区别在于 rxjs/operators 是使用 TypeScript 编写的,而 rxjs/add/operator/* 是使用 JavaScript 编写的。这意味着 rxjs/operators 是类型安全的,而 rxjs/add/operator/* 不是。

另一个区别是 rxjs/operators 可以与其他操作符组合使用,以创建更复杂的管道。而 rxjs/add/operator/* 只能单独使用。

何时应该使用 Pipeable 操作符?

你应该始终使用 Pipeable 操作符,除非你正在使用不支持它们的旧版本的 rxjs。Pipeable 操作符更易于发现、使用和安全。它们还可以与其他操作符组合使用,以创建更复杂的管道。

结论

Pipeable 操作符是 rxjs 中一个强大的新特性。它们可以让你轻松地处理数据并执行复杂的转换。如果你正在使用 rxjs/add/operator/* 来获取操作符,那么是时候切换到 rxjs/operators 了!