在外部index.ts文件中有一个非常简单的自执行函数,需要在window对象上注册一个全局变量。我想这样赋值:
(() => {
window.myCustomGlobal = new MyCustomGlobal();
})()
我在index.ts旁创建了index.d.ts:
import { MyCustomGlobal} from './classes';
declare interface Window {
myCustomGlobal: MyCustomGlobal;
}
以上没有任何错误,看起来一切都很好。应用程序编译正常。
然而,在IDE中,我遇到了一个错误:
ts2339: Property 'myCustomGlobal' does not exist on type 'Window'
我真的无法弄清楚Typescript究竟是如何“找出”要包含哪个.d.ts文件的。在某些库中,将.d.ts文件与.js文件放在一起会导致它被捡起来,并且它可以正常工作。实际上,我使用了与上面完全相同的接口与全局第三方库一起使用,效果很好;只是我的IDE似乎不会捡起它。
我尝试将index.d.ts
添加到tsconfig.json的include
和files
中,但都没有成功。
有人能够像对待孩子一样解释一下是什么原因导致TS捡起声明文件吗?有些日子我感觉我已经明白了,但是在像这样愚蠢简单的例子中,我感觉自己像个傻瓜。
谢谢
import
/export
的文件)中,你只需要使用declare global
。对于脚本文件,你可以直接省略它。 - ford04index.d.ts
,并花了一个小时检查我的配置是否正确。你救了我的一天! - SiegeSailor