TypeScript 第六讲 ———— TypeScript 泛型

Posted mqflive81

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TypeScript 第六讲 ———— TypeScript 泛型相关的知识,希望对你有一定的参考价值。

前言:

泛型:软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性。组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵话的功能。

在像c和Java这样的语言中,可以使用泛型来创建可重用的组件,一个组件可以支持多种类型的数据。这样 用户就可以以自己的数据类型来使用组件。

通俗理解,泛型就是解决类接口方法的复用性、以及对不特定数据类型的支持

下面这种就只能返回string类型的数据:
function getData(value:string):string
  return value;

any放弃了类型检查,不管什么类型都可以

泛型

可以支持不特定的数据类型

要求:传入你的参数和返回的参数一致

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

function getData<T>(value:T):T
  return value;

getData<number>(123);

泛型类:

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

class  MinClass<T>

  public list:T[] = [];

  add(num:T)

    this.list.pust(num);

  

  min():T

    var minNum = this.list[0];

    for(var i = 0;i<this.list.length;i++)

      if(minNum>this.list[i])

        minNum = this.list[i];

      

    

    return minNum;

  



var m1 = new MinClas<number>();

var m2 = new MinClas<string>();

m1.add(1);

m1.add(3);

m2.add(a);

m2.add(f);

泛型接口

第一种

interface configFn

  <T>(value1:T,value2:T):T;


var setData:configFn = function(value1:T,value2:string):T

  return value1+value2;



setData<string>(‘name’,‘张三’);

第二种

interface configFn<T>

  (value1:T,value2:T):T;


function getData<T>(value1:T,value2:string):T

  return value1+value2;



var myGetData:configFn<string> = getData;

myGetData("20","23");

 

以上是关于TypeScript 第六讲 ———— TypeScript 泛型的主要内容,如果未能解决你的问题,请参考以下文章

MFC原理第六讲.消息传递

PE格式第六讲,导出表

第六讲 字符串

机器学习中使用的神经网络第六讲笔记

第六讲抽象工厂模式

雷达原理与系统 第六讲 雷达发射机主要部件与应用