我在使用ts 在vscode 编辑器中 往全局变量中存变量 或者对象 编辑 在线等 window.playSocket = this.socket;

我在使用ts 在vscode 编辑器中 往全局变量中存变量 或者对象 编辑器回提示报错 不影响游戏运行 我想知道怎么才能让编辑器不报错 看着报错怎么都不舒服 怎么弄? 不知道 大家是怎么弄的呢? 有没有什么好的方案

window.playSocket = this.socket; 我这样去赋值 运行时没有问题编辑器 会提示 怎么弄,,,,,,

求解 求解

没人遇到此类问题么?

有一个简单的办法, 你把变量加到 cc 上, 如: cc.playSocket, 然后修改下: creator.d.ts:

declare module cc {
    export var playSocket: any;
}

ts 有断言,可以这样写 (window as any).playerSocket (<any>window).playerSocket

我也尝试过去 改creator.d.ts 提示好像是说不能改

这种写法 确实不会提示错误了 是什么原理,直接去存提示错误是因为不存在这个属性

window 的类型是”Window“,里面肯定没有你自己定义的属性,加上断言类型后,window的类型就假装是any,任意类型,可以包含任意属性。
js 里随用随插,但是 ts 里window 是一个具体的对象,这是不同,多写就会有体会了。