[英]TypeScript with WebSocket
我有一个webapp,在webapp中应用了JavaScript和websocket,
现在,我想尝试将我的webapp移动到类型安全的打字稿,
问题是,当我声明并初始化websocket时,typescript(在visual studio 2012中)生成错误:“属性'WebSocket'不存在于'Window'类型的值上”
但在JavaScript中,websocket正在运行且没有错误,
这是代码:
var Socket = window.WebSocket || window.MozWebSocket;
在JavaScript中它没关系,但在打字稿中它产生了错误,
我怎么解决这个问题? 或者Visual Studio 2012中是否有一种方法可以忽略错误,从而可以构建打字稿?
尝试访问以下属性:
var Socket = window['WebSocket'] || window['MozWebSocket'];
使用字符串索引器可以绕过编译时验证并允许动态操作。
我已更新我的答案,以跟上更新版本的TypeScript的变化...
如果MozWebSocket与WebSocket完全相同 - 您可以通过这种方式解决问题:
declare var MozWebSocket: {
prototype: WebSocket;
new (url: string): WebSocket;
new (url: string, prototcol: string): WebSocket;
new (url: string, prototcol: string[]): WebSocket;
OPEN: number;
CLOSING: number;
CONNECTING: number;
CLOSED: number;
}
var Socket: typeof WebSocket = WebSocket || MozWebSocket;
var socket = new WebSocket('url');
您可以扩展窗口定义(称之为“window.extend.d.ts”):
interface Window {
WebSocket: any;
MozWebSocket: any;
}
适用于TypeScript 0.8.3.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.