一、什么是泛型。
软件工程中,不仅要创建一致的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);