2016-11-28 149 views
1

我使用的是可觀察類,並打字稿導入不同的功能

import { Observable } from 'rxjs/Observable'; 

現在我想使用的可觀察的.of功能以下,因此,我必須添加以下到我的進口

import 'rxjs/add/observable/of'; 

我的問題是,爲什麼我必須分別導入這些函數。這不應該成爲Observable類的一部分嗎?另外,當我導航到rxjs模塊文件夾時,我會看到許多不同的文件,如of.d.ts,merge.d.ts。爲什麼這些文件在單獨的文件中,是爲了最小化加載的文件?另外如果我想如何加載完整的庫?

回答

4

是的,它可以讓您保持儘可能小的庫佔用空間。如果要將所有內容都拖入,您可以引用Rx.d.ts文件。然而,我發現僅針對我所使用的是在rxjs中單獨節省了超過10萬個醜陋的js,所以我爲這個任務創建了自己的「桶」。這裏有一個例子:

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的文件是要能夠在可觀測調用靜態方法,和那些在operator是那些可觀察到的情況下可用。

+0

另一個比較常見的問題是:'import'rxjs/add/operator/catch';' –