Typescript 无法构造';XMLHttpRequest';:请使用';新';运算符,此DOM对象构造函数不能作为函数调用

Typescript 无法构造';XMLHttpRequest';:请使用';新';运算符,此DOM对象构造函数不能作为函数调用,typescript,constructor,xmlhttprequest,Typescript,Constructor,Xmlhttprequest,在这里,我创建了一个类承诺,扩展了类XMLHttpRequest。 然后我尝试使用下面给定的方法访问这个类 export default class Promise extends XMLHttpRequest { constructor(url: string, type: string) { super(); config.url = url; config.requestType = type; } } 在进入超级调用时,出

在这里,我创建了一个类承诺,扩展了类
XMLHttpRequest
。 然后我尝试使用下面给定的方法访问这个类

export default class Promise extends XMLHttpRequest {
    constructor(url: string, type: string) {
        super();
        config.url = url;
        config.requestType = type;
    }
}
在进入超级调用时,出现以下错误

构造“XMLHttpRequest”失败:请使用“new”运算符,此DOM对象构造函数不能作为函数调用


这可能是因为
XMLHttpRequest
是一个托管对象,它们在扩展时有时会出现错误行为

幸运的是,如果您使用es6类对其进行扩展,情况会有所改变。
编译此文件时:

let prom = new Promise('api/200', 'get');
到es5,您可以获得:

class RequestPromise extends XMLHttpRequest {
    constructor() {
        super();
    }
}
但在使用目标es6编译时,它将保持类的原样:

var __extends = (this && this.__extends) || function (d, b) {
    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
    function __() { this.constructor = d; }
    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var RequestPromise = (function (_super) {
    __extends(RequestPromise, _super);
    function RequestPromise() {
        _super.call(this);
    }
    return RequestPromise;
}(XMLHttpRequest));
如果您尝试这样做,它应该可以正常工作

使发送HTTP请求变得非常容易。您只需创建对象的实例,打开URL,然后发送请求

class RequestPromise extends XMLHttpRequest {
    constructor() {
        super();
    }
}

你是如何编译的?哪个目标?目前正在将其编译为ES5可能的ya副本,我也发现它在es6格式中运行良好,但对我来说,我也将IE作为我的应用程序的目标,所以我想es6不会有任何好处
var oReq = new XMLHttpRequest();