Typescript中的泛型,泛型类,泛型接口

// 泛型: 就是解决类,接口,方法的复用性,以及对非特定数据类型的支持

// T 表示泛型,具体什么类型是调用这个方法的时候决定的

function getMsgs<T>(value:T): T { 
  return value;
}
getMsgs("主题")

// 泛型类:比如有个最小推算法,需要同时支持返回数字和字符串类型,通过类的泛型来实现

class MinClass<T> { 
  public list: T[] = [];
  add(num: T) {
    this.list.push(num);
  }
  min(): T { 
      var minVal = this.list[0];
      for (var i = 0, leng = this.list.length; i < leng; i++) {
        if (minVal > this.list[i]) {
          minVal = this.list[i];
        }
      }
      return minVal;
  }
}
var m = new MinClass<number>();
m.add(36);
m.add(6);
m.add(8);
m.add(3);
console.log(m.min())
var m2 = new MinClass<string>();
m2.add("f");
m2.add("b");
m2.add("c");
m2.add("s");
console.log(m2.min())

泛型接口: 

// 第一种定义泛型接口的方法
interface Config { 
  <T>(value: T): T;
}
var getData: Config = function<T> (value: T): T { 
  return value;
}
console.log(getData < string > ("张飞啊"));
console.log(getData < number > (123));
// 第二种定义泛型接口的方法
interface Config2<T> { 
  (value: T): T;
}
function getData2<T>(value: T): T { 
  return value;
}
var myGetData: Config2<string> = getData2;
console.log(myGetData("张三"));

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值