Typescript的这段代码如何理解?
interface ImportMeta {
url: string
readonly hot?: import('./hot').ViteHotContext
readonly env: ImportMetaEnv
glob: import('./importGlob').ImportGlobFunction
/**
* @deprecated Use `import.meta.glob('*', { eager: true })` instead
*/
globEager: import('./importGlob').ImportGlobEagerFunction
}
问题
对于glob属性:import('./importGlob') 不是返回Promise对象吗? 怎么可以 .ImportGlobFunction?
gpt回答
回复
1个回答
test
2024-06-25
原因就是这个引入在接口中,它会触发一个特性叫做 类型引入
,参考官方文档的描述:Type Only Import
原文如下:
import type
only imports declarations to be used for type annotations and declarations. It always gets fully erased, so there’s no remnant of it at runtime. Similarly, export type only provides an export that can be used for type contexts, and is also erased from TypeScript’s output.
简单来说就是 类型引入
不会存在于运行时,仅作为 编译时的类型检查,不是动态引入(或者从运行层面来说甚至就没有引入),自然就不会是 promise
对象
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容