集中导入rxjs可出租操作符

集中导入rxjs可出租操作符,rxjs,rxjs-lettable-operators,Rxjs,Rxjs Lettable Operators,我习惯于使用旧的rxjs语法,其中所有方法调用都是链接的,我可以集中导入所有运算符 在一个新的应用程序中,我现在开始在observable上使用pipe方法使用“lettable操作符”,但我没有成功地集中导入这些操作符 因此,在某个组件中,我使用map和mergeMap,并按如下方式导入它们: import { map } from 'rxjs/operators/map'; import { mergeMap } from 'rxjs/operators/mergeMap'; 例如,如果我

我习惯于使用旧的rxjs语法,其中所有方法调用都是链接的,我可以集中导入所有运算符

在一个新的应用程序中,我现在开始在observable上使用pipe方法使用“lettable操作符”,但我没有成功地集中导入这些操作符

因此,在某个组件中,我使用map和mergeMap,并按如下方式导入它们:

import { map } from 'rxjs/operators/map';
import { mergeMap } from 'rxjs/operators/mergeMap';

例如,如果我从组件文件中删除这些导入并将它们放在main.ts中,编译将失败,因为找不到这些方法。。。在可出租运营商之前,这通常很简单。我遗漏了什么?

对于旧操作符,导入它们意味着用一个新方法修补可观察类。您所依赖的是在一个文件中导入它们,然后在另一个文件中使用它们的糟糕做法。这是一种不好的做法,因为如果distinctUntilChanged操作符只在一个文件中使用,而您决定不再使用它,或者简单地删除该文件,那么中心位置仍然会导入它,而不必付出任何代价,使您的包变得比需要的大

现在,操作符是独立的顶级函数。您只需将它们导入您使用它们的地方(就像您应该使用旧的一样)。这是TypeScript所需要的,以便它知道您正在使用哪个函数(几个库的几个顶级函数可以命名为map()或of()或filter()),而且捆绑程序还需要知道捆绑包中包含什么

有关详细解释,请参阅

简而言之,只要习惯它:在一个模块(即文件)中使用的类、函数、变量和常量必须由该模块导入


您可以自动添加必要的导入。如果您是手工输入导入,那么您需要使用更好的工具。

对于旧操作符,导入它们包括使用新方法对可观察类进行猴子修补。您所依赖的是在一个文件中导入它们,然后在另一个文件中使用它们的糟糕做法。这是一种不好的做法,因为如果distinctUntilChanged操作符只在一个文件中使用,而您决定不再使用它,或者简单地删除该文件,那么中心位置仍然会导入它,而不必付出任何代价,使您的包变得比需要的大

现在,操作符是独立的顶级函数。您只需将它们导入您使用它们的地方(就像您应该使用旧的一样)。这是TypeScript所需要的,以便它知道您正在使用哪个函数(几个库的几个顶级函数可以命名为map()或of()或filter()),而且捆绑程序还需要知道捆绑包中包含什么

有关详细解释,请参阅

简而言之,只要习惯它:在一个模块(即文件)中使用的类、函数、变量和常量必须由该模块导入

您可以自动添加必要的导入。如果您是手工输入导入内容,则需要使用更好的工具