一、TypeScript 泛型的理解
1、TypeScript 中的泛型
在TypeScript中,泛型是-种创建可复用代码组件的工具。
这种组件不只熊被一种类型使甩。而是能被多种类型复用e类似于参数的作用。泛型是-种用以增强类、(classes) 心类型(tyes)和接
日Sinterfaces) 能力的非常可靠的手段。这样。我们开发者就可以轻松地将那些可复用的代码想件、适用于各种输入e然而不要把
TypeScript中的泛型错当成any类型来使用-
-你会在后面看到这两者的不同。
类似C#和Java这种语言,在它们的工具箱里,泛型是创建可复用代码组件的主要手段之- -。即,用于创建一个适用于 多种类型的代码组
件。这允许用户以他们自己的类使用该泛型组件。
2、泛型的定义
使用<T>来定义类型,<T>中的T可以是U也可以是其他合法的字母,建议大写。泛型可以理解为不确定单独类型,函数中使用泛型,可以约
束函数的参数和返回值类型相同。
A、定义:
function函数名<T>(形参名:T):T{
函数体语句;
return返回值; //返回值类型是T
}
B、调用:
函数名<数据类型>(参数)
但是使用any类型会导致这个函数可以接收任何类型的arg参数,这样就丢失了-一些信息:传入的类型与返回的类型应该是相同的。如果我们传入一个数字,我们只知道任何类型的值都有可能被返回。
解决方法:
使用类型变量,它是-种特殊的变量, 只用于表示类型而不是值。
function identity<T>(arg:T): T {
return arg;
给identity添加了类型变量T。T 帮助我们捕获用户传入的类型(比如: number) ,之后我们就可以使用这个类型。
之后我们再次使用
了T当做返回值类型。现在我们可以知道参数类型与返回值类型是相同的了。这允许 我们跟踪函数里使用的类型的信息。