XMLHTTPRequest的Angular 2类型问题

时间:2017-01-28 15:02:30

标签: angular xmlhttprequest typescript-typings

我正在使用XMLHttpRequest对象上传图片。我正在使用WebStorm作为编辑器。这是代码:

    uploadUserImage (files: File[], callback : any): void {

    let formData: FormData = new FormData();

    let xhr = new XMLHttpRequest();

    for (let i = 0; i < files.length; i++) {
        formData.append("File", files[i], files[i].name);
    }

    xhr.open('POST', this._baseUrl + '/users/images', true);
    xhr.setRequestHeader('x-jwt-token', this._securityService.getJwt());
    xhr.onload = function(){
        callback(JSON.parse(this.responseText));
    };
    xhr.send(formData);
}

问题是在回调中我传递了this.responseText。 WebStorm将此对象标识为XMLHttpRequestEventTarget。当我尝试运行NPM Start时出现错误:

  

错误TS2339:属性&#39; responseText&#39;在类型&#39; XMLHttpRequestEventTarget&#39;。

上不存在

我想我需要将它添加到打字中,但我不确定要添加什么。有任何想法吗?

提前谢谢你。

1 个答案:

答案 0 :(得分:2)

an issue跟踪此信息。在修复之前,您可以使用

xhr.addEventListener('load', function() {
});

摆脱类型错误。

另一方面,如果您正在使用angular,则不需要直接使用XMLHttpRequest。 @angular/http是更好的选择。