是否可以在打字稿中输出*作为foo

时间:2017-03-10 21:38:56

标签: typescript module export

我可以:

src

但似乎无法导出相同的内容:

import * as foo from './foo'

这似乎不起作用......:

export * as foo from './foo'

有什么想法吗?

---更新---

  

你想要达到什么目标?

基本上,我正在为我的应用实施import * as fooImport from './foo'; export const foo = fooImport; 后端。我想组织我的代码:

ngrx/store

我想使用我的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 文件来链接每个子集的所有导出(常见范例)。

但是,我想保留 namespaced 。我的index.tsxxx-reducer.ts个文件中的每个文件都有相同名称的导出(xxx-actions.tsreducerActionTypes,...),因此正常链接会导致名字碰撞。我要做的是允许Actionsxxx-actions的所有导出重新导出xxx-reducer。这将允许我:

xxx

而不是更详细:

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());
    }

无论如何都是要点......

2 个答案:

答案 0 :(得分:45)

TypeScript 3.8 发布以来,您就可以为导出添加别名

示例:

Intent intent = getIntent();
Uri data = intent.getData();

参考:https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html

答案 1 :(得分:24)

  

是否可以在typescript中将*导出为foo

不。但是,您可以使用两个步骤:

的src /核心/ 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 src / core / bar / index.ts

export * from "./baz";
export * from "./bop";

src / core / foo / baz.ts src / core / bar / baz.ts

export class Baz {

}

src / core / foo / bop.ts src / core / bar / bop.ts

export class Bop {

}

另请参阅:https://www.typescriptlang.org/docs/handbook/modules.html