Typescript 从不同文件导入时,不会多次调用默认导出
也许我理解错了。假设我有下面的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 '
// 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()
“仅执行一次”,这是怎么可能的,发动机是否进行了一些优化?