Typescript:泛型

       使用泛型可以来创建可重用的组件,一个组件可以支持多种类型的数据。泛型就是解决 类 接口 方法的复用性、以及对不特定数据类型的支持(类型校验)

       泛型:可以支持任意的数据类型

// T表示泛型,具体什么类型是调用这个方法的时候决定的,可以用任意字母表示,但是3个地方要一致
//getData表示泛型方法。
//(value:T):T 参数是任意类型,返回值是任意类型
       function getData(value:T):T{//传入什么类型,返回什么类型
           return value;
       }
          getData('1214231')
  function getData(value:T):any{//返回任意类型
           return '2145214214';
        }
       getData(123);  //参数必须是number
       getData('这是一个泛型');
泛型类
//类的泛型
class Addnum{
    public list:T[]=[];
    add(value:T):void{
        this.list.push(value);
    }
}
var m1=new Addnum();   /*实例化类 并且指定了类的T代表的类型是number*/
m1.add(11);

泛型接口

//函数类型接口
interface ConfigFn{
            (value1:string,value2:string):string;
        }
 var setData:ConfigFn=function(value1:string,value2:string):string{
            return value1+value2;
        }

//泛型函数类型接口
        interface ConfigFn{
            (value:T):T;
        }
 var getData:ConfigFn=function(value:T):T{
             return value;
         }
//泛型接口
        interface ConfigFn{
            (value:T):T;
        }
        var myGetData:ConfigFn= function getData(value:T):T{
            return value;
        } 

你可能感兴趣的:(Typescript)