Kev*_* O. 3 generics typescript
我无法理解TypeScript文档中的以下段落:
“泛型函数的类型就像非泛型函数的类型一样,首先列出类型参数,类似于函数声明:”
function identity<T>(arg: T): T {
return arg;
}
let myIdentity: <T>(arg: T) => T = identity;
Run Code Online (Sandbox Code Playgroud)
最后一行是做什么的,为什么要使用它?
据我了解,myIdentity是获取身份函数类型的变量?如果是这种情况,为什么我需要定义这样的变量?函数标识已经声明了我可以期望的返回类型。
Tit*_*mir 12
最后一行声明了一个名为 的变量myIdentity。该变量是一个函数类型,一个泛型函数(<T>使其成为泛型函数的签名,列表中可以包含更多类型参数),它接受一个 type 参数T并返回一个 type 值T。然后用identity符合myIdentity声明签名的函数初始化变量。
您可能希望这样做是为了myIdentity根据运行时条件分配不同的功能。或者声明一个这种类型的参数并将它传递给一个可以在以后调用它的函数。
可以说,从编译器的角度来看,由于类型推断,不需要显式类型声明。
let myIdentity: <T>(arg: T) => T = identity;
Run Code Online (Sandbox Code Playgroud)
相当于
let myIdentity = identity
Run Code Online (Sandbox Code Playgroud)
但是,从人的角度来看,它可以用于提高代码的可读性。
| 归档时间: |
|
| 查看次数: |
4336 次 |
| 最近记录: |