Typescript Does let变量:导入类型(';大模块';);是否将完整模块导入内存?

Typescript Does let变量:导入类型(';大模块';);是否将完整模块导入内存?,typescript,Typescript,对于以下代码段: let variable: typeof import('large-module'); async function expensiveOperation () { variable = await import('large-module'); // ...do stuff } 在调用函数之前,“大模块”是否加载到内存中? (因为导入是在类型定义中编写的)它不是。Typescript将静态解析键入。您可以在已编译的javascript中看到它: let变量; 异

对于以下代码段:

let variable: typeof import('large-module');

async function expensiveOperation () {
  variable = await import('large-module');
  // ...do stuff
}
在调用函数之前,“大模块”是否加载到内存中?

(因为导入是在类型定义中编写的)

它不是。Typescript将静态解析键入。您可以在已编译的javascript中看到它:

let变量;
异步函数expensiveOperation(){
变量=等待导入(“大模块”);
}

这里的静态含义是什么?如果模块包含类型定义怎么办?@ABOS它是“静态的”,而不是“统计的”。Typescript可以在编译时内省已安装的模块以提取类型,而无需实际运行模块或在运行时将模块加载到作用域中。是的,我认为静态术语在这里有点误导。TS只是一个文件一个文件地、一行一行地浏览,不管它是急切地还是懒散地加载模块来推断键入。