Как метод сделать generic?

public getPayerTypes(): Observable<PayerType[]> {
    return this.http.get<PayerTypes>('getPayerTypes')
      .pipe(
        pluck('data'),
        catchError(this.handleError)
      );
  }


Вот так что-то не работает:
private httpGet<T, K>(url: string): Observable<T> {
    return this.http.get<PayerTypes>('getPayerTypes')
      .pipe(
        pluck('data'),
        catchError(this.handleError)
      );
  }
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ответы на вопрос 1
Aetae
@Aetae Куратор тега TypeScript
Тлен
А зачем? Ты ведь явно указываешь что результат - Observable<PayerTypes>. Другим он быть не может и ни от чего не зависит. Зачем там url?

Или может ты имеешь ввиду что-то типа такого:
type Urls = {
    getPayerTypes: PayerTypes;
    getNPCTypes: NPCTypes;
}

private httpGet<K extends keyof Urls>(url: K): Observable<Urls[K]> {
  return this.http.get<Urls[K]>(url)
    .pipe(
      pluck('data'),
      catchError(this.handleError)
    );
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы