typescript学习笔记-泛型

函数泛型:

//函数泛型
function fun<T>(value:T):T{
    return value;
}
console.log(fun<string>('测试函数泛型'));
console.log(fun<number>(123));

// 类泛型
class minClass<T>{
    public arr:T[]=[];
    constructor(arr:T[]){
        this.arr=arr;
    }
    min():T{
        let arr = this.arr;
        let min = arr[0];
        for(var i=0;i<arr.length;i++){
            if(min>arr[i]){
              min=arr[i];
            }
        }
        return min;
    }
}
let m = new minClass<number>([9,4,2,6]);
console.log(m.min());

let m1 = new minClass<string>(['a','b',"c",'d','e','f']);
console.log(m1.min());


interface config{
    <T>(str:T):T
}

let fun1:config=function<T>(str:T):T{
    return str;
}
console.log(fun1('测试泛型接口'));

interface config1<T>{
    (str:T):T
}

function fun2<T>(str:T):T{
    return str;
}
let funs:config1<string>=fun2;
console.log(funs('测试第二种方法'));


class User{
    username:string|undefined;
    password:string|undefined;
}
let u = new User();
u.username='张三';
u.password='123456';
class mysqlDb{
    add(user:User):boolean{
        console.log(user,'user');
        return true;
    }
}
var Db = new mysqlDb();
Db.add(u);
// Db.add({username:'111'}); //报错 必须使用固定好的数据传递

class MysqlDb<T>{
    add(info:T):boolean{
        console.log(info,'info');
        return true;
    }
}
let Dbs = new MysqlDb<User>();
Dbs.add(u);


class Article{
    title:string;
    desc:string;
    status:number;
    constructor(o:{title:string,desc:string,status:number}){
        this.title=o.title;
        this.desc=o.desc;
        this.status=o.status;
    }
}

let a = new Article({title:'文章',desc:'描述',status:1});
let Dbs1  = new MysqlDb<Article>();
Dbs1.add(a);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值