typeScript的泛型

在使用typeScript的时候,会给函数定义类型 比如

function sum(num: number): number {
  return num
}

此时 给函数的参数规定了必须是number类型,如果不是number类型 比如你想使用boolean string 等类型则会报错,因此我们需要在调用函数的时候可以定义参数的类型 首先 先给函数加上泛型

1.泛型示例

function sum<T>(num: T): T {
  return num
}

上面这个<T>就是泛型,他可以做到在定义这个函数时 不决定这些参数的类型 而是让调用者以参数的形式告知这里的参数是什么类型

  1. 传入泛型的方式

函数定义时,<>的位置就是之后泛型的传入位置,比如上面函数的<T>.

传入泛型时,只要把具体的泛型传递给<T>即可

这样函数定义时,函数参数和函数返回值的T类型,都会变成传入的具体参数类型

泛型有两种传递的方式

  1. 通过<类型>的方式将泛型传递给函数

sum<number>(100)                         // 声明sum函数的泛型为number类型,并传递number类型的参数
sum<{name: string}>({ name: "zs" })     // 声明sum函数的泛型为{name: string}类型
sum<number[]>([15, 25]) 
  1. 通过类型推导自动推导我们传入变量的类型

sum(100)
sum("test")

这里会自动推导第一个100为number类型,第二个参数为string类型

泛型的名字会有一定的语义

T:Type的缩写,类型

K,V:key和value的缩写,键值对

E:Element的缩写。元素

O:Object的缩写,对象

猜你喜欢

转载自blog.csdn.net/hhhhhhaaaaaha/article/details/128626554