typescript泛型

软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性。 组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵活的功能。
约束数据类型

interface Person {
  name: string
  age: number
}

interface Animal {
  name: string
  type: string
}

function aa(arg:Person): Person{
  console.log(arg)
  const s = {
    name:arg.name,
    age:arg.age
  }
  return s;
}

 


 /* * 尖括号里面的是添加了P,A类型变量,arg1参数使用P类型,arg2使用A类型,返回值使用P类型. * */
function identity<P,A>(arg1: P,arg2:A):P {
  return arg1
}
/* * 1.因为参数和返回值被约束了,所以不可以随意的传参,一定要按照约束的类型来传参 * 2.调用的时候,给identity添加了上面已经定义了的Person和Animal两个变量类型, * arg1传入的类型跟Person的数据类型保持一致,arg1传入的类型跟Animal的数据类型保持一致, * 得到的返回值是{name:'aaa',age:0},正好是Person的类型; * */
identity<Person,Animal>({name:'aaa',age:0},{name:'aaa',type:'cat'});

 

 

 

转载于:https://www.cnblogs.com/darkbluelove/p/11338472.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值