TypeScript学习笔记4----泛型

    技术2025-09-03  8

    泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。

     

     <T>

     泛型基本应用

    function Hello<T>(arg:T):T{

     

    return arg;

    }

     

    var output = Hello<string>("hello ime");

     

    console.log(output);

     

     

    泛型的应用

      function Hi<K>(num:K):K{

     console.log(num.length);

     return num;

     }

     

    T[] =>表示泛型是一个数组

     

    function Hi<T>(str:T[]):T[]{

    console.log(str.length);

    return str;

    }

     

    var lists:Array<string> = Hi<string>(["1","2","3","4"]);

     

    for(var i=0;i<lists.length;i++){

    console.log(lists[i]);

    }

     

     

     泛型类型

     

    function Hx<T>(arg:T):T{

     

    return arg;

    }

     

    var myHello:<K>(arg:K) => K = Hx;

    console.log('myHello',myHello("hello"));

     

     

     

    var myFunc:(a:number)=>string = function(a:number):string{

    return "Hello"+a;

    }

     

    console.log(myFunc(2));

     

    接口中使用泛型

     

     interface HiTest{

     <T>(arg:T):T;

     }

     

     function myTest<T>(arg:T):T{

     return arg;

     }

     

     var MH:HiTest = myTest;

     console.log(MH('9999999999'));

     

     

    interface XX<T>{

    (arg:T):T;

    }

     

    function myXx<T>(arg:T):T{

    return arg;

    }

     

    var mh:XX<number> = myXx;

     

    console.log(mh(199));

     

    泛型类

     

     

    class HelloNumber<T>{

    Ten:T;

    add:(x:T,y:T) => T;

    }

     

    var myHelloNumber = new HelloNumber<number>();

    myHelloNumber.Ten = 10;

     

    myHelloNumber.add = function(x,y){

     

    return x+y;

    }

     

    console.log(myHelloNumber.Ten);

    console.log(myHelloNumber.add(10,10));

    Processed: 0.018, SQL: 9