Я пытаюсь настроить метод, который вызывает мой бэкэнд и делает для меня общие вещи.
Итак, я прихожу к этому коду:
myFct() {
this[type](url, params, options).pipe(...)
}
get<T>(url: string, params: HttpParams, options: any): Observable<HttpEvent<T>> {
return this._http.get<T>(url, options);
}
post<T>(url: string, params: HttpParams, options: any): Observable<HttpEvent<T>> {
return this._http.post<T>(url, params, options);
}
put<T>(url: string, params: HttpParams, options: any): Observable<HttpEvent<T>> {
return this._http.put<T>(url, params, options);
}
delete<T>(url: string, params: HttpParams, options: any): Observable<HttpEvent<T>> {
return this._http.delete<T>(url, options);
}
Но я обнаружил, что метод 4 является избыточным, и я хотел бы знать, есть ли способ сделать это напрямую:
this._http[type](url, params, options)
Но я получаю эту ошибку:
Cannot invoke an expression whose type lacks a call signature
Поскольку GET и DELETE не имеют HttpParams в своей подписи.
Это способ, которым я могу вернуть параметры в зависимости от условия? Или вернуть два параметра и они совпадают с подписью?