TS-泛型

TS学习

泛型

基本使用

//定义一个普通的函数 这样 只能返回一个number类型的数值 如果希望能传入一个任意类型的参数,则可以使用any
function Hello(num:number):number{
    return num
}

//但是使用any的话 就失去了校验参数的意义 所以 我们就使用泛型
function Hello1(str:any):any{
    return str
}
//泛型的基本写法
function Hello2<T>(arg:T):T{
    return arg
}
let output = Hello2<string>("hello") //定义泛型的好处就是 可以在使用的时候去规定传进去的参数 而不是在定义方法的时候规定
alert(output)

泛型的应用

function Hello3<T>(str:T[]):T[]{
    return str
}
let list:Array<string> = Hello3<string> (['a','b','c']);
for(let i=0;i<list.length;i++){
    alert(list[i])
}

泛型类型

interface Hello4{
    <T>(arg:T):T;
}
function myHello<T>(arg:T):T{
    return arg;
}
let HM:Hello4 = myHello;
alert(HM<string>('1')) //这样写,就很不方便我们对接口的使用 所以 我们可以在接口中就定义好泛型

更改后的泛型

interface Hello5<T>{
    (arg:T):T;
}
function myHello1<T>(arg:T):T{
    return arg;
}
let HM1:Hello5<number> = myHello;
alert(HM(100))

泛型类

class HelloNumber<T>{
    Ten:T;
    add:(x:T,y:T) => T
}
let myHelloNumber = new HelloNumber<string>();
myHelloNumber.Ten = "hello1"
myHelloNumber.add = function(x,y){
    return x+y
}
alert(myHelloNumber.Ten)
alert(myHelloNumber.add("hello",myHelloNumber.Ten))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值