【问题标题】:What is <T> used for as a type? [duplicate]<T> 用作类型是什么? [复制]
【发布时间】:2018-12-05 20:31:39
【问题描述】:

我已经看到在代码中用作类型。一直以为是自定义接口,但最近看到一些代码用过,但是没有看到标题为T的接口。

代码如下:

  get<T>(url: string, navController: NavController) {
    return this.http.get<T>(AppSettings.API_ENDPOINT + url, {headers: this.buildHeaders()}).pipe(
      catchError((err: any) => this.handleError(err, navController))
    );
  }

这是默认类型吗?它代表什么??

【问题讨论】:

  • T 代表任何被接受的generic 类型

标签: angular typescript


【解决方案1】:

它是一个泛型类型参数。

泛型类型参数允许您在编译时为方法指定任意类型 T,而无需在方法或类声明中指定具体类型。

【讨论】:

    【解决方案2】:

    T 是一个泛型类型,即它的行为就像一个变量,它将保存你不知道的类型。

    所以

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

    在上面,我们知道如果 identify 接受 number ,它将返回 number 等等。

    【讨论】:

    • 如果它只是一个泛型,默认类型不是'any'吗?所以你真的不需要有 identity() 你可以做 identity() 吗?
    • 阅读 stackoverflow.com/questions/44023061/… 了解 any 和 T 之间的差异。
    • 打字稿中泛型的全部意义在于强类型。因此,如果您不需要强类型,则只需使用 Identity(...)
    猜你喜欢
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    • 2015-02-27
    相关资源
    最近更新 更多