【问题标题】:Typescript/Angular: static class reference as function parameterTypescript/Angular:静态类引用作为函数参数
【发布时间】:2019-07-14 06:34:03
【问题描述】:

我对 typescript 很陌生,发现将 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 面前吐口水吗?我不知道!任何帮助是极大的赞赏。

【问题讨论】:

  • 你总是可以创建一个类实例并使用它!
  • 你能使用泛型吗,比如get&lt;T&gt;(reference: T, endpoint: string): Observable&lt;T[]&gt;?虽然不确定你到底想做什么。

标签: angular typescript function generics parameters


【解决方案1】:

我想你正在寻找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);
}

【讨论】:

    【解决方案2】:

    我看不出向 httpClient 或您尝试做的任何事情添加抽象层的意义。不过你应该看看Generics in Typescript

    function identity<T>(arg: T): T {
      return arg;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 2020-04-13
      • 2023-04-07
      • 2021-10-22
      相关资源
      最近更新 更多