2016-11-10 20 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(); 

这两个选项应该工作。