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

如何从bundle.ts文件中获取所有导入的函数名?

可行,具体实现方案如下

1. 调整bundle.ts的导出结构

原代码只是单独导入函数,需要将它们聚合为一个可枚举的结构(对象或数组)导出,这样其他脚本才能批量获取:

// bundle.ts
import { addEvent } from './event/add.post';
import { removeEvent } from './event/remove.post';
import { updateEvent } from './event/update.post';

// 导出为包含所有函数的对象(保留函数名作为键)
export const eventFunctions = {
  addEvent,
  removeEvent,
  updateEvent
};

// 也可以导出为数组(无需键名时使用)
// export const eventFunctions = [addEvent, removeEvent, updateEvent];

2. 在目标脚本中遍历获取

导入这个聚合结构后,直接遍历即可:

// 目标脚本文件
import { eventFunctions } from './bundle';

// 遍历对象(带函数名)
for (const [funcName, func] of Object.entries(eventFunctions)) {
  console.log(`函数名称:${funcName}`, func);
  // 可在此对每个函数执行后续操作,比如注册、调用等
}

// 若导出的是数组,直接遍历数组元素
// eventFunctions.forEach(func => {
//   console.log(func);
// });

关键说明

  • 无法直接遍历原始的分散导入:ES模块的导入是静态的,运行时无法自动收集所有单独导入的变量,必须显式聚合为对象或数组。
  • 若需自动扫描文件导入(比如批量导入./event/下所有符合规则的文件),可借助构建工具的动态导入能力(如Vite的import.meta.glob、Webpack的require.context),但这属于构建阶段的处理逻辑,和当前静态导入场景不同。

内容的提问来源于stack exchange,提问作者I'll-Be-Back

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 12:00:54