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);


})()
posted @ 2021-10-07 17:56  前端那点事  阅读(1425)  评论(0编辑  收藏  举报