前言
泛型的基本使用
一、泛型是什么?
泛型(Generics)是指在定义函数、接⼝或类的时候,不预先指定具体的类型,⽽在使⽤的时候再指定类型的⼀种特性,简单来说泛型其实就是类型参数,在定义的时候定义形参(类型变量) ,使⽤的时候传⼊实参(实际的类型)。
二、泛型的分类
- 函数中的泛型使用
- 接口中的泛型使用
- 类型别名的泛型使用
- 类中的泛型使用
三、泛型的基本使用
3.1 函数中的泛型使用
这里我们不知道我们的arg是啥类型,所以就加了一个未知类型(注意这个T可以是别的名字,可以是U,W,Vde等名字不固定,但一般官方推荐叫T)
function Fn<T>(arg: T): T {
return arg;
}
Fn<Number>(100)
/*
这里Fn<T>:表示参数类型
arg:T表示我们的实际参数类型
最后一个T:表示我们的函数返回值类型
Fn<Number>(100) 调用这个函数传入number类型,这样我们的T就是number类型,返回值也是number
传入什么类型我们的T就是什么类型
*/
3.2 接口中的泛型使用 (运用广泛)
这里我们不知道Data是啥参数类型(比如我们定义后端返回过来的数据类型,我们后端接口data数据格式有可能不一样,所以我们可以使用泛型)
interface resData<T> {
data:T
code:number,
success:string
}
const result:resData<number> = {
data:100,
code:200,
success:'成功了'
}
3.2 类型别名中的泛型使用 (运用广泛)
type resData<T> = {
name:T
age:number,
address:string
}
const result:resData<string> = {
name:'张三',
age:18,
address:'湖北武汉'
}
3.2 类中的泛型使用
class Student<T>{
name:T,
age:number
constructor(name:T,age:number){
this.name = name
this.age = age
}
}
const res= new Student<string>('xiaohong',18)
总结
例如:以上就是今天要讲的内容,本文仅仅简单介绍了泛型的使用,我们可以灵活的使用泛型来进行参数的类型约束。