Typescript 从不同文件导入时,不会多次调用默认导出

Typescript 从不同文件导入时,不会多次调用默认导出,typescript,Typescript,也许我理解错了。假设我有下面的TypeScript文件 // client.ts const getClient = () => { console.log("being called"); return {name: "abcd"} }; export default getClient(); // consumer1.ts import getClient from './client.ts' // consumer2.ts import getClient from '

也许我理解错了。假设我有下面的TypeScript文件

// client.ts
const getClient = () => {
  console.log("being called");
  return {name: "abcd"}
};

export default getClient();

// consumer1.ts
import getClient from './client.ts'

// consumer2.ts
import getClient from './client.ts'

现在,当我运行此命令时,我希望
被调用
两次写入控制台,但我只看到一次调用。这是怎么回事?发生了什么事?

这是正确的。如果不将其导入任何位置,它仍将执行。您正在执行一个函数并导出结果。以后可以根据需要多次导入它。它将只执行一次

在这种情况下,将其分解为子模块没有区别。考虑一下这个问题:

您可能希望这样做:

const getClient = () => {
  console.log("being called");
  return {
    name: "abcd"
  }
};

export default getClient
--

import getClient from './client.ts'
const clientModule = getClient()

import getClient from './client.ts'
const clientModule = getClient()
“仅执行一次”,这是怎么可能的,发动机是否进行了一些优化?