定义
function fn<T>(a: T): T {
return a
}
使用
/*
不指定泛型,TS可以自动对类型进行推断
*/
fn(10) //自动判断泛型为number,则T为number,返回类型也为number
/*
指定泛型
*/
fn<string>('hello')
function fn1<T, K>(a: T, b: K): T {
console.log(b)
return a
}
使用接口
interface inter {
length: number
}
// T entends inter 表示泛型T必须使用inter实现类(子类)
function fn2<T extends inter>(a: T): number {
return a.length
}
类中的泛型
class MyClass<T> {
name: T
constructor(name: T) {
this.name = name
}
}
const p = new MyClass('张三')