Je peux:
import * as foo from './foo'
Mais ne semble pas exporter la même chose:
export * as foo from './foo'
Cela ne semble pas fonctionner non plus ...:
import * as fooImport from './foo';
export const foo = fooImport;
Des idées?
--- MISE À JOUR ---
Qu'essayez-vous de réaliser?
Fondamentalement, je travaille sur la mise en œuvre d'un ngrx/store
backend pour mon application. Je veux organiser mon code comme ceci:
app/core/
index.ts
viewer/
index.ts
viewer-actions.ts
viewer-reducer.ts
view-data/
index.ts
view-data-actions.ts
view-data-reducer.ts
Et je veux utiliser mon index.ts
fichiers pour enchaîner toutes les exportations de chaque sous-ensemble (paradigme commun).
Cependant, je veux garder les choses espace de noms. Chacun de mes xxx-reducer.ts
et xxx-actions.ts
les fichiers ont des exportations du même nom (reducer
, ActionTypes
, Actions
, ...) donc le chaînage normal entraînerait une collision de noms. Ce que j'essaie de faire, c'est d'autoriser toutes les exportations de xxx-actions
et xxx-reducer
être réexporté en xxx
. Cela me permettrait de:
import { viewer, viewerData } from './core';
...
private viewer: Observable<viewer.Viewer>;
private viewData: Observable<viewData.ViewData>;
ngOnInit() {
this.viewer = this.store.let(viewer.getViewer());
this.viewData = this.store.let(viewData.getViewData());
}
Au lieu du plus verbeux:
import * as viewer from './core/viewer';
import * as viewerData from './core/viewer-data';
...
C'est l'essentiel de toute façon ...
Est-il possible d'exporter * en tant que foo en TypeScript
Nan. Vous pouvez cependant utiliser un processus en deux étapes:
src/core/index.ts
import * as Foo from "./foo";
import * as Bar from "./bar";
export {
Foo,
Bar,
}
src/index.ts
import { Foo, Bar } from "./core";
function FooBarBazBop() {
Foo.Baz;
Foo.Bop;
Bar.Baz;
Bar.Bop;
}
src/core/foo/index.ts et src/core/bar/index.ts
export * from "./baz";
export * from "./bop";
src/core/foo/baz.ts et src/core/bar/baz.ts
export class Baz {
}
src/core/foo/bop.ts et src/core/bar/bop.ts
export class Bop {
}
Voir aussi: https://www.typescriptlang.org/docs/handbook/modules.html