You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于`export { default } from`语法的疑问及最佳实践咨询

关于ES模块导出/重导出的三个疑问解答

1. 此处导出的default值是什么?

File A里根本没定义default导出,所以当File B用export { default } from "fileA"时,实际导出的default值是undefined。
这种写法相当于先从fileA里尝试导入名为default的成员(但fileA没有),再把这个不存在的成员导出。部分打包工具或运行时可能会抛出警告,但最终导出的结果就是undefined。

2. File B没有import语句,是否存在隐含导入?

存在。export { ... } from "模块路径"属于ES模块的**重导出(re-export)**语法,它的本质是先隐式导入目标模块里的指定成员,再把这些成员导出。整个过程不需要显式写import语句,但模块系统依然会加载fileA并完成导入操作。

3. 这种导出导入方式是否为良好实践?

得分情况判断:

  • 重导出本身是合理的实践:比如用一个文件作为模块的统一入口,把多个子模块的成员聚合导出,方便外部调用(像export * from "./lib/types"就是典型的聚合导出场景)。
  • 但导出不存在的default成员是糟糕的实践:File A没有定义default,却硬要导出它的default,会导致使用者拿到undefined,还可能造成误解(误以为fileA有default导出),完全没有意义,建议删掉这行代码。

内容的提问来源于stack exchange,提问作者Viraj Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 07:07:06