ts泛型案例

基础

function cyc<T>(msg:T):string{
    let str:string="你输入了:";
    str+=msg;
    return str;
}
var log=cyc<string>("1");
console.log(log)
var log1=cyc<number>(2);
console.log(log1)

泛型约束<T extends cyc> 

interface cyc{
    id:number,
    name:string
}
function box<T extends cyc>(arr:T[]):T[]{
    arr.map(x=>{
        x.name+="1";
    })
    return arr;
}
var arr:cyc[]=[
    {
        id:1,
        name:"wx搜程序员实用资源"
    },
    {
        id:2,
        name:"wx搜程序员野区"
    }
]
var newArr=box(arr);
console.log(newArr)

泛型类型

function cyc<T>(x:T):T{
    return x;
}
var b:{<T>(x:T):T}=cyc;
console.log(b("写法一"));

var c:<U>(x:U)=>U=cyc;
console.log(c("写法二"));

泛型接口

function cyc<T>(x:T):T{
    return x;
}
interface box{
    <T>(x:T):T
}
var b:box=cyc;
console.log(b("wx搜程序员野区"));

 写法二

function cyc<T>(x:T):T{
    return x;
}
interface box<T>{
    (x:T):T
}
var b:box<string>=cyc;
console.log(b("wx搜程序员野区"));

泛型类

class box<T>{
    a:T;
    add:(x:T,y:T)=>T
}
let cyc=new box<number>();
cyc.a=10;
cyc.add=(x,y)=>{return x*y};
console.log(cyc.add(cyc.a,60));

 object、泛型、object的key类型声明

function getProperty<T,K extends keyof T>(obj: T, key:K) {
    return obj[key];
}
let x:{
    [propName:string]:number
} = { a: 1, b: 2, c: 3, d: 4 };
console.log(getProperty(x, "a"));

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪狼之夜

打个赏,让博主知道博文没白写

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值