如何在file2中批量导出file1模块及新增的Things3模块?
批量导出模块内容的简化写法
现有代码场景
file1 文件代码
import * as Things1 from "../things1" import * as Things2 from "../things2" export { Things1, Things2, }
file2 文件代码
import * as Distributor from "../file1" import * as Things3 from "../../things3"
需求
需要在file2中实现如下形式的导出,且无需逐个手动赋值(如export const Things1 = Distributor.Things1;)——实际场景中导出项数量较多,手动赋值效率极低:
export { Things1, Things2, Things3, }
解决方案
方案1:直接从源模块导入后统一导出
如果可以直接访问things1、things2的源文件,跳过file1中转,直接导入所有需要的模块后统一导出:
import * as Things1 from "../things1" import * as Things2 from "../things2" import * as Things3 from "../../things3" export { Things1, Things2, Things3 }
这种写法简洁直观,没有额外的中转逻辑,是最直接的实现方式。
方案2:批量转发file1的导出项
如果必须保留file1的中转逻辑(比如file1有统一的导出控制),可以使用export * from语法批量转发file1的所有导出项,再单独处理Things3:
// 批量转发file1的所有导出项,自动包含Things1、Things2 export * from "../file1" // 单独导入并导出Things3 import * as Things3 from "../../things3" export { Things3 }
export * from语法会直接将目标模块的所有导出项转发出去,不需要在当前模块作用域中手动声明每个变量,完美适配大量导出项的场景。
内容的提问来源于stack exchange,提问作者A. L
相关产品推荐
相关产品推荐

