类型Window上不存在XMLHttpRequest

时间:2017-01-04 22:40:08

标签: typescript

我正在为我的项目开发一个小型异步库。我决定用TypeScript编写它,但我的编译器给我一个'XMLHttpRequest' does not exist on type 'Window'的错误,如标题所示。

如果窗口没有XMLHttprequest,我想要实现的是ActiveXObject的创建。

if (window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();
 } else {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

我没有必要加入它,但我想知道为什么会这样?

IDE我正在使用的是VS Code(它也向我显示错误)并且我正在使用gulp-tsify

进行编译

1 个答案:

答案 0 :(得分:10)

试试这个:

if ((<any>window).XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();
} else {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

问题是Typescript对于定义该类型属性的每个对象都有一个类型,如果你将它转换为某些定义,有时会从这些定义中删除缺少的属性(或以后动态添加的属性)。键入any然后它将以匿名类型处理它。