javascript – 是否可以在ES2015中导出“import * as”的结果?

在ES2015中,可以将整个模块导入为其属性为模块导出的对象:
import * as name from 'module';

我发现这对于命名空间非常有用,并且一直使用它.

也可以重新导出其他模块的导出:

export { name } from 'module'; // selectively
export * from 'other-module'; // indiscriminately

现在我正在尝试用这种风格编写一个带有命名空间的库.在顶级模块中收集所有内容的直观方式如下:

export * as name from 'module';

但这似乎不起作用; Babel和Rollup都拒绝了它.

我可以将模块作为对象导入,通过迭代其键来创建克隆,然后导出它,但它只是一个普通的旧动态对象,所以我将失去Rollup提供的巨大优势.

那么,使用声明性模块语法真的没办法做到这一点吗?在我看来,没有任何借口.

解决方法

不,这只是在ES6中错过了.尽管如此,还有 is an ES7 proposalrollup will consider implementing it.

在此之前,您需要使用两个声明和一个本地绑定,尽管不需要克隆该对象:

import * as name from 'module';
export { name };

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...