泛型
泛型,顾名思义,就是可以适用于多个类型,使用类型变量比如T帮助我们捕获传入的类型,之后我们就可以继续使用这个类型。
本质是参数化类型,通俗的将就是所操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和函数的创建中,分别成为泛型类,泛型接口、泛型函数
泛型-泛型函数
创建泛型函数的格式
function fn<Type>(value: Type): Type { return value }
// 上面的Type只是一个名字而已,可以改成其他的
function fn<T>(value: T): T { return value }
语法:在函数名称的后面写 <>
(尖括号),尖括号中添加类型变量,比如此处的 Type。
-
类型变量 Type,是一种特殊类型的变量,它处理类型而不是值
-
该类型变量相当于一个类型容器,能够捕获用户提供的类型(具体是什么类型由用户调用该函数时指定)
-
因为 Type 是类型,因此可以将其作为函数参数和返回值的类型,表示参数和返回值具有相同的类型
-
类型变量 Type,可以是任意合法的变量名称
调用泛型函数的格式
const num = fn<number>(10)
const str = fn<string>('a')
-
语法:在函数名称的后面添加
<>
(尖括号),尖括号中指定具体的类型,比如,此处的 number -
当传入类型 number 后,这个类型就会被函数声明时指定的类型变量 Type 捕获到
-
此时,Type 的类型就是 number,所以,函数fn参数和返回值的类型也都是 number