泛型 泛型类

泛型:软件工程中,要考虑代码重用性。组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型

泛型就是解决 类 接口 方法 的复用性、以及对不特定数据类型的支持(类型校验)

泛型可以支持不特定的数据类型  要求:传染的参数和返回的参数一致

泛型函数

//  T 表示泛型,具体什么类型是调用这个方法的时候决定的
function getDate<T>(value:T):T{
    return value;
}

getDate<number>(123);
getDate<string>('123');

泛型类

class Min<T> {
    public list:T[] = [];
    constructor() {

    }
    add(value:T){
        this.list.push(value);
    }

    min():T{
        var minNum = this.list[0];
        this.list.forEach((item)=>{
            if(item < minNum){
                minNum = item;
            }
        })
        return minNum;
    }
}

var m = new Min<number>(); //实例化类 并且制定了类的T代表的类型是number
m.add(4);
m.add(6);
m.add(8);
alert(m.min());  //4

泛型接口

// 方式1
interface ConfigFn<T>{
    (value:T):T;
}

function getData<T>(value:T):T{
    return value;
}

getData<string>('Tom');
// 方式2
interface ConfigFn2{
    <T>(value:T):T;
}

var getData2:ConfigFn2 = function<T>(value:T):T{
    return value;
}

getData2<number>(12);

猜你喜欢

转载自www.cnblogs.com/webmc/p/12675012.html