<t>里面`函数genericFunction <t>(arg:T):string {}`

时间:2016-11-24 09:41:33

标签: generics typescript

我正在阅读TypeScript here中的泛型函数。作者提供了一个通用函数的示例:

function genericFunction<T>(arg:T): string {
    return arg.toString();
}

我对<T>的目的感到好奇。没有它,这个

function genericFunction(arg:T): string {
    return arg.toString();
}

会出现错误Error:(1, 30) TS2304:Cannot find name 'T'.。那么它是否以某种方式告诉编译器函数中指定的类型T应该被视为泛型?那么要定义一个简单的函数我们需要使用name来定义泛型函数,我们需要使用name<type here>标识符吗?

在底部,作者显示了<T>的另一种用法:

function xValue<T extends Point>

用于告诉编译器类型T将在Point接口上定义属性。

我理解通用功能是什么。问题是关于通用函数语法中<T>标识符的用途。

1 个答案:

答案 0 :(得分:4)

function genericFunction<T>

<T>这是此函数的泛型类型的简介。您基本上是在说我们在这里有一个函数,我们在其中使用泛型类型,它是T

在那里引入T允许您将其用作函数其余部分的类型。

如果省略<T>,该功能不知道您使用的是通用类型,它将无效。