一、定义
定义函数或类时,遇到类型不确定时使用泛型
二、使用
可以指定多个泛型,泛型通过尖括号声明,声明后才可以使用泛型
可以指定泛型接收参数类型,也可以不指定泛型接收参数类型,不指定泛型接收类型时,会自动判断类型
function fn1<T,k>(a:T,b:K):T{
console.log(b)
return a
}
let result1=fn1(10,'艾比利') //方式1
let result2=fn1<number,string>(10,'艾比利') //方式2
三、限制范围
我们可以通过interface接口定义结构,通过实现interface的方法或类,来达到限制的作用
interface inter{
length:number
}
function fn2<T extends inter>(a:T):number{
return a.length
}
let result3=fn2('123')
fn2方法泛型T继承interface接口,形参的类型为T,当我们进行函数的调用,保证形参具有 数字型的length属性,才能实现方法的调用,从而实现了限制范围