我正在阅读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>
标识符的用途。
答案 0 :(得分:4)
function genericFunction<T>
此<T>
这是此函数的泛型类型的简介。您基本上是在说我们在这里有一个函数,我们在其中使用泛型类型,它是T 。
在那里引入T允许您将其用作函数其余部分的类型。
如果省略<T>
,该功能不知道您使用的是通用类型,它将无效。