2017-01-28 5 views
2

Я использую объект XMLHttpRequest для загрузки изображений. Я использую WebStorm в качестве редактора. Вот код:Угловой 2 Проблема с типом для XMLHTTPRequest

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. Когда я пытаюсь запустить НПМ Start я получаю ошибку:

error TS2339: Property 'responseText' does not exist on type 'XMLHttpRequestEventTarget'.

Я думаю, что мне нужно, чтобы добавить его к типизации, но я не уверен, что добавить. Есть идеи?

Спасибо вам заранее.

ответ

2

an issue отслеживание этого. Прежде чем исправить это, вы можете использовать

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

, чтобы избавиться от ошибки типа.

С другой стороны, если вы используете угловой, вам не нужно использовать XMLHttpRequest напрямую. @angular/http - лучший выбор.

 Смежные вопросы

  • Нет связанных вопросов^_^