Angular7, как сделать типы для Httpcommonmodule получить / разместить / удалить / положить параметры - PullRequest
0 голосов
/ 24 октября 2018

Я обновляю свой проект с 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;

}

Я хочу задать две вещи

  1. это правильный способ сделать это, так как мне нужно написать обертку через http get / post / put, я могу напрямую дать объект, например

this.http.get (url, {Наблюдение: 'response', responseType: 'blob'}). subscribe ((result) => {console.log (result);});

но я хочу сделать это, указав тип

Даже если я использую свойства интерфейса, такие как

, наблюдаем: 'response';

Тогда это также позволяет использовать его, и этот кодработает нормально

...