ts--泛型

本秂侑毒 提交于 2019-12-19 11:48:37
//泛型:软件工程中,我们不仅要创建一致的定义良好的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);
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!