You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 15:02:32