TS 的import 会执行模块文件?

新手上路,请多包涵

现在我有俩文件A、B,A文件 import 了B文件的函数,当我执行A文件时,发现B文件的代码也被执行了,因为输出了B文件的一个函数执行的结果。
这是TS的问题还是?因为我之间看require才会执行模块的代码,import只是输出了引用,

阅读 3k
2 个回答

和 ts 没关系,首次加载 es module 的时候,会走一个初始化流程:

  1. 模块内的同步代码会被执行一遍,且会形成一个独立的作用域,导出产物都会挂载一个对象上
  2. 当 模块 再次被 import 时,代码就不会执行了,直接返回导出产物

应用即执行
所以一般export出去的是 function 给外部调用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题