繁体   English   中英

TypeScript通用函数的类型

[英]TypeScript Type of generic function

我无法在TypeScript文档中了解以下段落:

“泛型函数的类型与非泛型函数的类型一样,首先列出类型参数,类似于函数声明:”

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

let myIdentity: <T>(arg: T) => T = identity;

最后一行做了什么以及为什么使用它?

据我所知,myIdentity是一个变量,它获取身份函数的类型? 如果是这种情况,为什么我需要定义这样的变量? 函数标识已经声明了我可以期待的返回类型。

让我们说,从编译器的角度来看,由于类型推断,不需要显式类型声明。

let myIdentity: <T>(arg: T) => T = identity;

相当于

let myIdentity = identity

然而,从人的角度来看,它可用于提高代码可读性。

最后一行声明了一个名为myIdentity的变量。 这个变量是一个功能类型,一通用功能( <T>使得它的通用功能的签名,更类型参数可以是在列表中),其采用类型的参数T并返回类型的值T 然后使用符合myIdentity的声明签名的identity函数初始化变量。

您可能希望这样做,以便根据运行时条件为myIdentity分配不同的函数。 或者声明这种类型的参数并将其传递给稍后可以调用它的函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM