javascript - 是否可以在单个语句中从另一个模块导出 * 和默认值?

标签 javascript es6-modules

情况

我有一个模块 moduleAdefault并命名导出:

// Module A
export {
  A1 as default,
  A2,
  A3,
};

在另一个模块中 moduleB我想导出(聚合)来自 moduleA 的所有内容(default 和命名导出)。我这样做了:

// Module B
export * from "moduleA";

然后在另一个模块中moduleC我导入了moduleBdefault导出,我预计是default模块A的导出:

// Module C
import ModuleB from "moduleB";

但是ModuleB解决了 undefined .

我通过将模块 B 更改为以下来修复此问题,它按预期工作:

// Module B
export { default } from "moduleA";
export * from "moduleA";

问题

我能否以某种方式在一行中导出模块 B 中的内容?类似下面的内容(这是无效的语法)。

export { default, * } from moduleA;

旁白:为什么 export * from <module>不导出default导入/导出?

最佳答案

你不能。

来自ecma spec,export * from "moduleA"; 不会从引用的模块重新导出默认绑定(bind)。

There's a proposal ,目前处于第一阶段,可能会让您做到这一点。

关于javascript - 是否可以在单个语句中从另一个模块导出 * 和默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57580560/

相关文章:

javascript - babel 编译的 ES6 中的 block 作用域

javascript - 为什么 webpack 在使用 "import * as _"时不摇晃 lodash?

javascript - 在 VS Code 中为我自己的 JS ES6 模块库实现 Intellisense

javascript - 设置数组索引属性时调用 `Object.prototype` setter 的原因

javascript - 如何重命名时刻时区中的 precisionDiff 键?

javascript - div从右滑动到全宽

javascript - 使用数据库创建数字文件

javascript - 重新导出模块不适用于对象传播

javascript - 当 app.use 使用导入的中间件功能时,express.js api 请求挂起

javascript - 使用 Rollup Babel 插件时,如何告诉 Babel 忽略 es6 导入?