Я обновляю свой проект с angular 2 на angular7 и использую Httpcommonmodule
Определение типа в модуле выглядит так:
get(url: string, options: {
headers?: HttpHeaders | {
[header: string]: string | string[];
};
observe: 'response';
params?: HttpParams | {
[param: string]: string | string[];
};
reportProgress?: boolean;
responseType?: 'json';
withCredentials?: boolean;
}): Observable<HttpResponse<Object>>;
Так что, когда я использую его внутри моего сервиса, какthis
this.http.get(url,{observe: 'response', responseType: 'blob'}).subscribe((result)=>{console.log(result);});
Это прекрасно работает, но теперь я хочу получить этот объект ({наблюдаем: 'response', responseType: 'blob'}) из моей функции вместо записи этого в каждом get / post / putвызов
, поэтому я сделал одну функцию, которая возвращает этот объект
getHeaders(observe, responseType) :HttpHeaderModel {
let header: HttpHeaderModel = {observe, responseType};
return header;
}
, где HttpHeaderModel
export interface HttpHeaderModel {
headers?: HttpHeaders | {
[header: string]: string | string[];
};
observe: 'response';
params?: HttpParams | {
[param: string]: string | string[];
};
reportProgress?: boolean;
responseType?: 'json';
withCredentials?: boolean;
}
Я хочу задать две вещи
- это правильный способ сделать это, так как мне нужно написать обертку через http get / post / put, я могу напрямую дать объект, например
this.http.get (url, {Наблюдение: 'response', responseType: 'blob'}). subscribe ((result) => {console.log (result);});
но я хочу сделать это, указав тип
Даже если я использую свойства интерфейса, такие как
, наблюдаем: 'response';
Тогда это также позволяет использовать его, и этот кодработает нормально