Typescript导入不同的函数

时间:2016-11-28 21:04:44

标签: typescript rxjs observable

我正在使用Observable类并具有以下内容

import { Observable } from 'rxjs/Observable';

现在我想使用Observable的.of函数,因此我必须将以下内容添加到我的导入中

import 'rxjs/add/observable/of';

我的问题是,为什么我必须单独导入这些功能。这不应该是Observable类的一部分吗?另外,当我导航到rxjs模块文件夹时,我看到了许多不同的文件,例如of.d.ts,merge.d.ts。为什么这些在单独的文件中,是否最小化加载的文件?另外,如果我愿意,如何加载完整的库?

1 个答案:

答案 0 :(得分:4)

是的,允许您尽可能减少图书馆的占地面积。如果要将所有内容拖入,可以引用Rx.d.ts文件。但是,我发现只针对我使用的东西只能在rxjs中节省超过100K uglified js,所以我创建了自己的"桶"为了这个任务。这是一个样本:

var seconds = time.getSeconds();

$('.color').each(function setColors(i) {
  $(this).css('background', colors[i + seconds]);
});

请注意,export { Observable } from 'rxjs/Observable'; export { Subscription } from 'rxjs/Subscription'; export { Subject } from 'rxjs/Subject'; export { BehaviorSubject } from 'rxjs/BehaviorSubject'; export { AsyncSubject } from 'rxjs/AsyncSubject'; import 'rxjs/add/observable/never'; import 'rxjs/add/observable/of'; import 'rxjs/add/observable/timer'; import 'rxjs/add/observable/using'; import 'rxjs/add/observable/fromEvent'; import 'rxjs/add/observable/zip'; import 'rxjs/add/operator/concat'; import 'rxjs/add/operator/pairwise'; import 'rxjs/add/operator/map'; import 'rxjs/add/operator/switchMap'; import 'rxjs/add/operator/merge'; import 'rxjs/add/operator/combineLatest'; import 'rxjs/add/operator/filter'; import 'rxjs/add/operator/distinctUntilChanged'; import 'rxjs/add/operator/do'; import 'rxjs/add/operator/first'; import 'rxjs/add/operator/delay'; import 'rxjs/add/operator/zip'; 中的文件是您希望能够在Observable上调用的静态方法,observable中的文件是Observable实例上可用的文件。