在使用typeScript的时候,会给函数定义类型 比如
function sum(num: number): number {
return num
}
此时 给函数的参数规定了必须是number类型,如果不是number类型 比如你想使用boolean string 等类型则会报错,因此我们需要在调用函数的时候可以定义参数的类型 首先 先给函数加上泛型
1.泛型示例
function sum<T>(num: T): T {
return num
}
上面这个<T>就是泛型,他可以做到在定义这个函数时 不决定这些参数的类型 而是让调用者以参数的形式告知这里的参数是什么类型
传入泛型的方式
函数定义时,<>的位置就是之后泛型的传入位置,比如上面函数的<T>.
传入泛型时,只要把具体的泛型传递给<T>即可
这样函数定义时,函数参数和函数返回值的T类型,都会变成传入的具体参数类型
泛型有两种传递的方式
通过<类型>的方式将泛型传递给函数
sum<number>(100) // 声明sum函数的泛型为number类型,并传递number类型的参数
sum<{name: string}>({ name: "zs" }) // 声明sum函数的泛型为{name: string}类型
sum<number[]>([15, 25])
通过类型推导自动推导我们传入变量的类型
sum(100)
sum("test")
这里会自动推导第一个100为number类型,第二个参数为string类型
泛型的名字会有一定的语义
T:Type的缩写,类型
K,V:key和value的缩写,键值对
E:Element的缩写。元素
O:Object的缩写,对象