//泛型:软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性,组件不仅要能支持当前的数据类型,同时也能支持未来的数据类型
//泛型就是解决 类 接口 方法的复用性 以及对不特定数据类型支持
//any放弃了类型检查,传入和返回的类型可以不一样 泛型T的使用可以让让返回和传出的类型一致
function getDate<T>(value: T): T {
return value;
}
getDate<number>(123);
//泛型类
class minClass {
public list: number[] = [];
add(num: number) {
this.list.push(num);
}
min():number{
var minNumber=this.list[0];
for (let i = 0; i <this. list.length; i++) {
if(minNumber>this.list[i]){
minNumber=this.list[i];
}
}
return minNumber;
}
}
var m=new minClass();
m.add(2);
m.add(21);
m.add(12);
m.add(1);
console.log(m.min());
class MinClass<T> {
public list:T[]=[];
add(value:T){
this.list.push(value);
}
min():T{
var minNumber=this.list[0];
for (let i = 0; i <this. list.length; i++) {
if(minNumber>this.list[i]){
minNumber=this.list[i];
}
}
return minNumber;
}
}
var m1=new MinClass<number>(); //实例化类,并制定了T代表的类型为number
m1.add(3);