TypeScript项目引用中无法从全局声明获取真实类型
问题:TypeScript项目引用下全局类型推断异常(Vue组件引发)
- 示例仓库包含electron和src两个子项目,使用TypeScript项目引用特性
- 在
src/global.d.ts中从electron模块导入API_TYPE并声明window.electronAPI的类型,但VSCode无法正确推断API_TYPE的真实类型,打开src/main.ts时提示类型未被识别 - 问题截图:

- 初步排查发现:移除tsconfig.json中的
references字段后类型推断恢复正常,但因electron和src项目需分离,无法移除该字段 src/global.d.ts相关代码:
import type { API_TYPE } from "../electron/src/index"; declare global { interface Window { electronAPI: PRELOAD_API_TYPE<API_TYPE>; } } export {};
- 重新上传仓库后定位到根因:移除
src/components/HelloWorld.vue组件后,window.electronAPI的类型可被正确推断 - 补充测试:在线Demo运行时类型显示正常,但下载到本地用VSCode打开后,
src/main.ts中的api和API_TYPE变量无法显示对应类型- 在线正常截图:

- 本地异常截图:

- 在线正常截图:
恳请提供解决该问题的建议!
内容的提问来源于stack exchange,提问作者threetree
相关产品推荐
相关产品推荐

