使用仅使用字符串导入RxJS函数和方法并使用命名导入导入之间的区别是什么。例如:
使用'添加'字符串:
//Cannot apply indexing with [] to an expression of type 'object'
使用命名导入
import 'rxjs/add/operator/map'
单个方法只能单向工作,但我无法确定如何确定需要导入特定方法的方式。有没有办法确定使用哪种方法,以及有什么区别?
答案 0 :(得分:4)
第一次导入将使用map方法修补Observable原型,因此它将在此类型的所有实例上可用。
第二个是导入一个可以用一些参数调用的函数,并返回一个Observable。
修补原型不适用于树摇动等问题,因此在最新版本的RxJs中添加了管道方法并且所有导入都被命名。
来自RxJs readme的示例:
import { Observable, Subject, ReplaySubject, from, of, range } from 'rxjs';
import { map, filter, switchMap } from 'rxjs/operators';
range(1, 200)
.pipe(filter(x => x % 2 === 1), map(x => x + x))
.subscribe(x => console.log(x));
答案 1 :(得分:1)
rxjs/observable
命名空间下的运算符称为pipepable运算符。
这比rxjs/add
下的旧补丁运算符更可取。因为修补Observable.prototype使得捆绑器不可能被树震动。其他原因。