TypeScript入门(五)- 泛型

一、什么是泛型。
软件工程中,不仅要创建一致的API,同时也要考虑可重用性。组件不仅能够支持当前的数据类型,同时也能支持
未来的数据类型,创建大型系统时为你提供的十分灵活的功能。
在Java语言中,可以使用泛型来创建可重用的组件,一个组件可以支持多种类型的数据。这样就可以以自己的数据类型来使用
组件。泛型就是解决类接品方法的复用性,以及对不特定数据类型的支持。

二、ts中的泛型
1、方法级的泛型
function countByPrimary<T>(id:T):number{
    return 1;
}
countByPrimary<string>('122');
countByPrimary<number>(123);

2、类、接口使用泛型
用HashMap说明,但不要要实现HashMap
interface Map<K,V> {
    put(key:K,value:V):V;
}
interface Entry<K,V> {
    key:K;
    value:V;
}
class HashMap<K,V> implements Map<K,V>{
    private entrys:Array<Entry<K,V>> = [];
    constructor(size:number=16){
    }
    put(key:K,value:V):V {
        var entry:Entry<K,V> = {"key":key,"value":value};
        var index:number = this.hashKey(key);
        this.entrys[index] = entry;
        return value;
    }
    hashKey(key:K):number {
        return this.entrys.length;
    }
}
var map = new HashMap<string,Number>();
map.put('123',123);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值