2016-11-10 26 views
0

我一直在使用類似的導入使用rxjs以打字稿了:可以導入成員到嵌套名字

import * as rx from 'rxjs/Rx'; 

var stream: rx.Subject<boolean> = new rx.Subject<boolean>(); 

這一切工作,但現在我想要做的樹搖晃,它看起來喜歡的方式這是通過「修補」進口[1]。所以基於這一點,我可以導入這樣的代碼:

import {Subject} from 'rxjs/Subject'; 
var stream: Subject<boolean> = new Subject<boolean>(); 

這是偉大的,但我想保持嵌套一個共同的前綴內rxjs內的符號名。 (例如:rx.Subject)。從我所看到的ES6導入聲明的工作原理來看,沒有明顯的方法可以做到這一點[2]。我想要的是這樣的:

import {Subject} as rx from 'rxjs/Subject'; 

或任何其他類似的語法,可以允許這一點。

有誰知道我可以使用的語法或人們用於此的一種常見模式?

1:http://reactivex.io/rxjs/manual/installation.html 2:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import

回答

1

您可以創建一個模塊,再出口只是你從RX需要的符號。假設你的名字rx-subset.ts

export {Subject} from 'rxjs/Subject'; 

// an so on 

然後你就可以在你的源代碼,而不是到處rx使用這樣的:

import * as rx from './rx-subset' 

// here you can use rx.Subject 
1

你可以做兩件事情,我猜。你可以做到以下幾點:

import { Subject as rx.Subject } from "rxjs/Subject"; 
let subject = new rx.Subject(); 

import * as rx from "rxjs/Subject"; 
let subject = new rx.Subject(); 

這兩個選項應該工作。