Typescript / Angular: статическая ссылка на класс в качестве параметра функции - PullRequest
0 голосов
/ 20 февраля 2019

Я довольно новичок в машинописи и обнаружил, что отображение ответа http на класс было действительно изящным, как

getMovies(): Observable<Movie[]> {
  return this.http.get<Movie[]>(this.endpoint);
}

, возвращая заполненный массив Movie классов (только пример)

Это заставило меня попытаться несколько обобщить это, вызвав гипотетический метод get в родительском классе, например

// child
getMovies(): Observable<Movie[]> {
  return this.super.get(class_reference_here, this.endpoint);
}

// parent
get(reference: any, endpoint: string): Observable<any> /* or <any[]> ?? */  {
    return this.http.get<reference[]>(endpoint);
}

Есть ли способ достичь чего-то подобного?Есть ли способ заселить class_reference_here чем-нибудь разумным?Это плюет в лицо Typescript?Я не знаю!Любая помощь очень ценится.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Я не вижу смысла в добавлении слоя абстракции в httpClient или что-то еще, что вы пытаетесь сделать.Тем не менее, вам стоит взглянуть на Generics in Typescript .

function identity<T>(arg: T): T {
  return arg;
}
0 голосов
/ 20 февраля 2019

Я думаю, что вы ищете Generics .

// child
getMovies(): Observable<Movie[]> {
  return this.super.get<Movie[]>(this.endpoint);
}

// parent
get<T>(endpoint: string): Observable<T> {
    return this.http.get<T>(endpoint);
}
...