/ / Possible d'importer un membre dans un nom imbriqué - tapuscrit

Possibilité d'importer un membre dans un nom imbriqué - typescript

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 № 1

Vous 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.