J'utilise rxjs avec Typescript en utilisant une importation comme:
import * as rx from "rxjs/Rx";
var stream: rx.Subject<boolean> = new rx.Subject<boolean>();
Tout cela fonctionne, mais maintenant je voudrais faire des tremblements d'arbre et il semble que la façon de procéder consiste à "patcher" les importations [1]. Sur cette base, j'ai pu importer le code comme ceci:
import {Subject} from "rxjs/Subject";
var stream: Subject<boolean> = new Subject<boolean>();
C'est super, mais je voudrais garder lenoms de symboles à l'intérieur de rxjs imbriqués dans un préfixe commun. (ex: rx.Subject). D'après ce que je vois du fonctionnement de l'instruction d'importation ES6, il n'y a aucun moyen évident de le faire [2]. Ce que je voudrais, c'est quelque chose comme:
import {Subject} as rx from "rxjs/Subject";
ou toute autre syntaxe similaire qui pourrait permettre cela.
Quelqu'un connaît-il une syntaxe que je pourrais utiliser ou un modèle commun que les gens utilisent pour cela?
1: http://reactivex.io/rxjs/manual/installation.html 2: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import
Réponses:
1 pour la réponse № 1Vous pouvez créer un module qui réexporte uniquement les symboles dont vous avez besoin de rx. Supposons que vous l'appeliez rx-subset.ts
:
export {Subject} from "rxjs/Subject";
// an so on
Ensuite, vous pouvez l'utiliser partout dans votre code source au lieu de rx
comme ça:
import * as rx from "./rx-subset"
// here you can use rx.Subject
1 pour la réponse № 2
Vous pourriez faire deux choses, je suppose. Vous pouvez effectuer les opérations suivantes:
import { Subject as rx.Subject } from "rxjs/Subject";
let subject = new rx.Subject();
ou
import * as rx from "rxjs/Subject";
let subject = new rx.Subject();
Ces deux options devraient fonctionner.