我正在为我的项目开发一个小型异步库。我决定用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
答案 0 :(得分:10)
试试这个:
if ((<any>window).XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
问题是Typescript
对于定义该类型属性的每个对象都有一个类型,如果你将它转换为某些定义,有时会从这些定义中删除缺少的属性(或以后动态添加的属性)。键入any
然后它将以匿名类型处理它。