嗨,我正在关注https://www.typescriptlang.org/docs/handbook/generics.html,并看到了以下功能
…
下面是解释:
您可以将loggingIdentity的类型读取为“通用函数loggingIdentity接受类型参数T,并使用参数arg(它是Ts的数组)并返回Ts的数组。”如果我们传入一个数字数组,则会得到一个数字数组,因为T会绑定到数字。这样,我们就可以将通用类型变量T用作我们正在使用的类型的一部分,而不是整个类型,从而为我们提供了更大的灵活性。
我试图了解为什么需要在函数中声明function loggingIdentity<T>(arg: T[]): T[] {
console.log(arg.length);
return arg;
}
。我知道该函数现在需要一个通用类型的数组,并且还返回具有该通用类型的值。为什么我们不能只删除冗余并声明如下:
<T>
答案 0 :(得分:2)
通过在函数中使用<T>
,您声明T
是通用参数。如果不这样做,Typescript将不知道T
在arg: T[]
中的含义。它只会认为您拼写了一个类型名称。