博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TypeScript--泛型
阅读量:6861 次
发布时间:2019-06-26

本文共 2205 字,大约阅读时间需要 7 分钟。

泛型

声明一个方法,同时返回string,number类型

问题

function getData1(value:string):string{    return value;}function getData2(value:number):number{    return value;}console.log(getData1('aa'));console.log(getData2(11));

clipboard.png

利用any来解决,但是放弃了类型教验

function getData(value:any):any{    return value;}console.log(getData('aa'));console.log(getData(11));

clipboard.png

利用泛型

function getData
(value:T):T{ return value;}console.log(getData
(123));console.log(getData
('aaa'));

clipboard.png

获取数组最小值

未使用泛型

要同时实现string,number,要写2个类来实现

number

class MinClass{    public list:number[]=[];    add(num:number){        this.list.push(num);    }    min():number{        var minNum = this.list[0];        for(var i =0;i
this.list[i]){ minNum = this.list[i] } } return minNum; }}var m = new MinClass();m.add(1);m.add(6);m.add(2);m.add(11);console.log(m.min());

clipboard.png

string

class MinClass{    public list:string[]=[];    add(num:string){        this.list.push(num);    }    min():string{        var minNum = this.list[0];        for(var i =0;i
this.list[i]){ minNum = this.list[i] } } return minNum; }}var m = new MinClass();m.add('a');m.add('c');m.add('b');console.log(m.min());

clipboard.png

泛型

一个类,同时实现string,number

class MinClass
{ public list:T[]=[]; add(num:T):void{ this.list.push(num); } min():T{ var minNum = this.list[0]; for(var i =0;i
this.list[i]){ minNum = this.list[i] } } return minNum; }}var m = new MinClass
();m.add(1);m.add(6);m.add(2);m.add(11);console.log(m.min());var s = new MinClass
();s.add('a');s.add('b');s.add('f');s.add('d');console.log(s.min());

clipboard.png

泛型接口

未使用泛型

interface ConfigFn{    (value1:string,value2:string):string;}var setData:ConfigFn = function(value1:string,value2:string):string{    return value1+value2;}console.log(setData('name','list'));

clipboard.png

使用泛型

interface ConfigFn{    
(value:T):T;}var setData:ConfigFn= function
(value:T):T{ return value;}console.log(setData
('aa'));console.log(setData
(123));

clipboard.png

转载地址:http://ysxyl.baihongyu.com/

你可能感兴趣的文章
js的闭包的一个示例说明
查看>>
bin/sh failed with exit code 1
查看>>
《梦幻西游》打响反盗号战役:为2亿玩家提供360安全武器
查看>>
Silverlight面向客户端,HTML5面向Web
查看>>
微软拟向互联网开发商提供免费IIS 服务器
查看>>
seajs和requirejs对比;node初识
查看>>
Python笔记总结week1
查看>>
c#中使用NetCDF存储二维数据的读写操作简单应用
查看>>
linux网络相关命令使用
查看>>
java基础(二)
查看>>
记录一下:chrome上,把网页保存为文件的插件
查看>>
C#和Javascript间互转的Xxtea加解密
查看>>
BAT批处理中的字符串处理详解(字符串截取)
查看>>
智力题集锦【二】
查看>>
读 《我为什么放弃Go语言》 有感
查看>>
删除MySQL中冗余字段
查看>>
MS DOS 命令大全
查看>>
升级10.10 Yosemite 后,cocoapods 出现错误(解决方案)
查看>>
UEditor编辑器两个版本任意文件上传漏洞分析
查看>>
Redis分布式锁服务(八)
查看>>