是否可以在单个语句中从另一个模块导出 * 和默认值?
Is it possible to export * and default from another module in a single statement?
情况
我有一个模块 moduleA
,其中包含 default
和名为 exports:
// Module A
export {
A1 as default,
A2,
A3,
};
在另一个模块 moduleB
中,我想导出(聚合)来自 moduleA
的所有内容(包括 default
和命名导出)。我这样做了:
// Module B
export * from "moduleA";
然后在另一个模块 moduleC
中,我导入了 moduleB
的 default
导出,我希望它是模块 A 的 default
导出:
// 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
import/export?
如果我对你的问题的理解正确,我相信下面的代码片段就是你正在寻找的模式:
// Module A
export {
A1 as default,
A2,
A3,
};
// Module B
export * as moduleA from 'moduleA;'
// Module C
import * as moduleB from 'moduleB;' /* This is known as a 'namespace import' */
你不能。
根据 ecma 规范,export * from "moduleA";
不会从引用的模块重新导出默认绑定。
There's a proposal,目前处于第一阶段,可能会让您做到这一点。
情况
我有一个模块 moduleA
,其中包含 default
和名为 exports:
// Module A
export {
A1 as default,
A2,
A3,
};
在另一个模块 moduleB
中,我想导出(聚合)来自 moduleA
的所有内容(包括 default
和命名导出)。我这样做了:
// Module B
export * from "moduleA";
然后在另一个模块 moduleC
中,我导入了 moduleB
的 default
导出,我希望它是模块 A 的 default
导出:
// 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
import/export?
如果我对你的问题的理解正确,我相信下面的代码片段就是你正在寻找的模式:
// Module A
export {
A1 as default,
A2,
A3,
};
// Module B
export * as moduleA from 'moduleA;'
// Module C
import * as moduleB from 'moduleB;' /* This is known as a 'namespace import' */
你不能。
根据 ecma 规范,export * from "moduleA";
不会从引用的模块重新导出默认绑定。
There's a proposal,目前处于第一阶段,可能会让您做到这一点。