ts--泛型

//泛型:软件工程中,我们不仅要创建一致的定义良好的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);

猜你喜欢

转载自www.cnblogs.com/xbzxx/p/11986983.html