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

Luc*_*cas 24 module export typescript

我可以:

import * as foo from './foo'
Run Code Online (Sandbox Code Playgroud)

但似乎无法出口相同:

export * as foo from './foo'
Run Code Online (Sandbox Code Playgroud)

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

import * as fooImport from './foo';
export const foo = fooImport;
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

---更新---

你想要实现什么目标?

基本上,我正在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
Run Code Online (Sandbox Code Playgroud)

我想用我的index.ts文件链接每个子集的所有导出(常见范例).

但是,我想保留命名空间.我的每个xxx-reducer.tsxxx-actions.ts文件具有相同的名称(出口reducer,ActionTypes,Actions,...),所以正常的链接会导致名称冲突.我所试图做的是让所有从出口xxx-actionsxxx-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());
    }
Run Code Online (Sandbox Code Playgroud)

而不是更冗长:

import * as viewer from './core/viewer';
import * as viewerData from './core/viewer-data';

...
Run Code Online (Sandbox Code Playgroud)

无论如何,这个要点......

Prz*_*ski 48

由于TypeScript 3.8已发布,您可以为导出添加别名

例子:

export * as utilities from "./utilities.js";
Run Code Online (Sandbox Code Playgroud)

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

  • TS38 确实支持,但 webpack 不支持:https://github.com/webpack/webpack/issues/10460。如果您在 tsconfig.json 中将 module 设置为“es2015”,那么它将被降级为 webpack 当前支持的内容 (4认同)
  • 我仍然无法使用这个。我的系统安装了 typescript 3.8.3。 (2认同)

Sha*_*tin 34

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

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

SRC /核心/ index.ts

import * as Foo from "./foo";
import * as Bar from "./bar";

export {
    Foo,
    Bar,
}
Run Code Online (Sandbox Code Playgroud)

SRC/index.ts

import { Foo, Bar } from "./core";

function FooBarBazBop() {
    Foo.Baz;
    Foo.Bop;
    Bar.Baz;
    Bar.Bop;
}
Run Code Online (Sandbox Code Playgroud)

src/core/foo/index.ts src/core/bar/index.ts

export * from "./baz";
export * from "./bop";
Run Code Online (Sandbox Code Playgroud)

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

export class Baz {

}
Run Code Online (Sandbox Code Playgroud)

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

export class Bop {

}
Run Code Online (Sandbox Code Playgroud)

另见:https://www.typescriptlang.org/docs/handbook/modules.html