Я пытаюсь получить текстовый файл с сервера, поэтому я сделал это:
const httpOptions = {
headers: new HttpHeaders({
'Accept': 'text/html',
'Content-Type': 'text/plain; charset=utf-8'
}),
responseType: 'text'
};
this.http.get<any>(url, httpOptions).subscribe(response => {
const blob = new Blob([response], { type: 'text/csv' });
const url = window.URL.createObjectURL(blob);
const anchor = document.createElement('a');
anchor.download = 'user-permission-auditlog' + endDate.toUTCString() + '.csv';
anchor.href = url;
anchor.click();
});
И он работает именно так, как я хочу. Однако компилятор выкрикивает боль:
ошибка TS2769: перегрузка не соответствует этому вызову. Перегрузка 1 из 15, '(url: string, options: {headers ?: HttpHeaders | {[header: string]: string | string [];}; Наблюдать: "события"; params ?: HttpParams | {[param: string ]: string | string [];}; reportProgress ?: boolean; responseType ?: "json"; withCredentials ?: boolean;}): Observable <...> ', выдал следующую ошибку. Аргумент типа '{заголовки: HttpHeaders; responseType: string; } 'нельзя назначить параметру типа' {headers ?: HttpHeaders | {[header: string]: строка | Строка []; }; наблюдать: «события»; params ?: HttpParams | {[param: string]: string | Строка []; }; reportProgress ?: логическое значение; responseType ?: "json"; withCredentials ?: логическое значение; }». Свойство «наблюдаем» отсутствует в типе «{заголовки: HttpHeaders; responseType: string; } 'но требуется в типе' {headers ?: HttpHeaders | {[header: string]: строка | Строка []; }; наблюдать: «события»; params ?: HttpParams | {[param: string]: string | Строка []; }; reportProgress ?: логическое значение; responseType ?: "json"; withCredentials ?: логическое значение; } '.
В нем перечислены 3 из 15, все они жалуются, что responseType должен быть' json ', но' text 'в качестве responseType определенно является одной из перегрузок:
get(url: string, options: { headers?: HttpHeaders | { [header: string]: string | string[]; }; observe?: "body"; params?: HttpParams | { [param: string]: string | string[]; }; reportProgress?: boolean; responseType: "text"; withCredentials?: boolean; }): Observable<string>
https://angular.io/api/common/http/HttpClient#get
Что я здесь не так делаю?