是否在TS 1.7中重新导出ES6模块?

施乐杜卡迪

TS转口让我迷路了。假设我创建了一对测试模块;

test1.ts;

export function test1() {
    return 'test';
}

test2.ts;

export function test2() {
    return 'test';
}

我相信我应该能够做这样的事情;

组合;

export * from './test1';
export * from './test2';

module.exports = {
    test1: test1,
    test2: test2
};

但是,没有这种运气。似乎有很多GitHub问题在讨论各种解决方法,包括一个古老的hack使用方法,export import * from './test1'但它们似乎都在争论ES6规范的真正含义,而实际上却没有。

做这样的汇总的正确方法是什么?我是否只是沿着错误的路径将模块拆分成多个文件?命名空间在这里更合适吗?

C Snover

使用module.exportsES模块时不应该使用module.exports是CommonJS模块的一部分,而不是EcmaScript模块的一部分。

汇总,直接导出

您正确的汇总模块将只是:

export * from './test1';
export * from './test2';

然后使用汇总:

import * as rollup from './combined';
// or `import { test1, test2 } from './combined'`;
// or any other valid import

rollup.test1();
rollup.test2();

汇总,添加名称空间对象

如果要使用额外的命名空间导出test1和test2,请使用export {}语法:

import * as test1 from './test1';
import * as test2 from './test2';
export { test1, test2 };

然后用法变为:

import * as rollup from './combined';
rollup.test1.test1();
rollup.test2.test2();

汇总,使用不同的导出名称

您也可以使用as名称冲突来重定向名称,就像import

export { test1 as t1 } from './test1';
export { test2 as t2 } from './test2';

然后用法变为:

import * as rollup from './combined';
rollup.t1();
rollup.t2();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用webpack和ts-loader重新导出ES6模块

是否可以在ES6 / 7中导出Arrow函数?

在ES6 / Babel中重新导出整个模块

ES6模块语法:是否可以将*从名称导出为...?

Javascript(ES6)模块:是否可以导出具有动态名称的变量?

Ember.js:在新的ES6模块系统中,App.X = Y是否实质上意味着“导出默认值”?

是否可以在模块中同时使用NgxUiLoaderHttpModule和NgxUiLoaderRouterModule。ts?

最好导出包含函数的对象,或者仅导出ES6中的多个函数(是否有约定?)

单个模块中的Angular 1.x和es6多个常量

Jest是否支持ES6导入/导出?

错误TS2794:应该有1个参数,但有0个参数。您是否忘了在类型变量“ Promise”中包含“ void”?

ES6模块:重新导出为对象

导入ES6模块是否在导入文件中执行代码?

***。service.ts(1,21)中的错误:错误TS2305:模块'“ *** @ angular / common / http”'没有导出的成员'Response'

ES6和ES7功能是否在本机中没有Babel Transpiling?

是否悬挂了ES6模块进口?

Webpack是否原生支持es6模块?

es6是否可以导入commonjs模块?

带有环境d.ts模块的Typescript ES6模块语法

打字稿找不到本地es6模块; 错误TS2307:找不到模块

ES6,React:如果类的实例被导出,假设所有导入都会引用它并且不会重新设置它是否安全?

导出 TS 以支持 ES6、CommonJS 和 HTML <script> 标签

如何使用TS编译器API查看.d.ts中的类型是否已更改?

如何检查类型T是否在参数包Ts中?

Concepts TS中是否有预定义的概念?

如何在es6中启用ts-check

列出 ES6 模块语法中的所有导出

是否可以在 Node.JS 命令行程序中同时使用 CommonJS 和 ES6 模块?

重新导出ES 6模块中的默认值