如何编写d.ts文件让tsc识别扩展的window对象与全局myGlobal
解决全局对象myGlobal的TypeScript类型声明问题
你的问题核心是接口名大小写不匹配,TypeScript对标识符大小写敏感,你定义的接口是myGlobal(小写开头),但后续引用时用了MyGlobal(大写开头),导致TS无法识别类型关联。
修正后的global.d.ts代码
// 统一接口名大小写,首字母大写更符合TypeScript惯例 interface MyGlobal { myFunction: (...args: any[]) => any; // 建议替换any为具体类型,提升类型安全性 varA: string; // 补充你的全局变量类型 } // 扩展Window接口,关联MyGlobal类型 interface Window { myGlobal: MyGlobal; } // 声明全局变量myGlobal declare let myGlobal: MyGlobal;
额外检查项
- 确保
global.d.ts文件在tsconfig.json的include范围内,比如放在项目根目录时,"include": ["**/*.ts", "**/*.js"]已能覆盖;若放在子目录(如src/types/),可调整include为"src/**/*"或明确添加"src/types/*.d.ts" - 重启TypeScript语言服务(比如VSCode中按
Ctrl+Shift+P选择TypeScript: Restart TS Server),避免缓存导致类型更新不及时
修正后,无论是window.myGlobal.myFunction()还是直接myGlobal.varA,TS都不会再报错,同时能提供正确的类型提示。
内容的提问来源于stack exchange,提问作者te-ce
相关产品推荐
相关产品推荐

