ts中泛型的使用
ts中泛型的使用?
(function(){
/*
在定义函数或者类时,如果遇到类型不明确的可以使用泛型
*/
function fn<T>(a:T) :T{
return a
}
// 可以直接调用具有泛型的函数
fn(10) //不指定泛型,ts可以自动对类型进行推断
fn<number>(10) //指定泛型
function fn2<T,K>(a:T,b:K) :K{
return b
}
fn2<number,string>(123,'asfd')
interface myInterface {
name:string
}
type myType = {
length:number
}
function fn3<T extends myType|myInterface>(a:T){
console.log(a);
return a
}
fn3<myInterface>({name:'zhanshan'})
fn3<myType>('sad')
fn3<myType>({length:1})
class MyClass<T>{
name:T
constructor(name:T){
this.name = name
}
}
const mc = new MyClass("zhangsan")
console.log(mc.name);
})()