当前位置: 首页 > news >正文

Ts中泛型的理解与使用

一、什么是泛型

在定义函数,定义接口或定义class类的时候,不先规定其类型,在使用的时候进行定义类型。

二、使用

1、定义函数:

// 函数类型
function AA<T>(arg:T):T{return arg
}
AA<number>(1)
AA<string>('li')// length的使用
// 方法一
// function fn2<T extends string>(arg:T){
//     return arg.length
// }
// fn2<string>('lisi')
// 方法二
interface Is{length:number
}
function fn2<T extends Is>(arg:T){return arg.length
}
fn2<string>('lisi')
console.log(fn2<string>('lisi'),'3333')// 多类型联合声明
function fn3<T,U>(a:T,b:U) {return  a
}
fn3<number,string>(1,'lisi')

2、接口泛型

对请求参数和接口返回数据控制类型

interface Ilist{list:{id:number;name:string}[]
}
interface Idata{message:string;ok:number;data:Ilist
}
let data1:Idata = {message:'成功',ok:200,data:{list:[{id:1,name:'张三'},{id:1,name:'张三'}]}
}

3、class泛型

// class泛型
// class Person2{
//     useName:string
//     useAge:number
//     constructor(name,age){
//         this.useName = name
//         this.useAge = age
//     }
// }
// const p = new Person2('张三',3)class Person2<T,U>{useName:TuseAge:Uconstructor(name:T,age:U){this.useName = namethis.useAge = age}
}
const p = new Person2<string,number>('张三',3)

http://www.lryc.cn/news/115752.html

相关文章:

  • uniapp使用eatchs雷达图
  • PostgreSQL jsonb
  • Spring系列四:AOP切面编程
  • VS+Qt+C++旅游景区地图导航源码实例
  • 回调函数和一般函数的区别
  • 使用vite创建Vue/React前端项目,配置@别名和Sass样式,又快又方便
  • 从前序与中序遍历序列构造二叉树,从中序与后序遍历序列构造二叉树
  • 【JS常见数据结构】
  • 算法基础之插入排序
  • InfoQ 分享
  • Jupyter Notebook 遇上 NebulaGraph,可视化探索图数据库
  • 人类与机器的分类不同
  • WEB安全-SQL注入,CSRF跨站伪造,OXX跨站脚本
  • 【HDFS】客户端读某个块时,如何对块的各个副本进行网络距离排序?
  • 【数字化处理】仿生假体控制中肌电信号的数字化处理研究(Matlab代码实现)
  • 谷歌推出Flax:JAX的神经网络库
  • PDF换行的难度,谁能解决?
  • 山东布谷科技直播程序源码使用Redis进行服务器横向扩展
  • symfony3.4中根据角色不同跳转不同页面
  • Dockerfile部署golang,docker-compose
  • 什么是Linux,如何在Windows操作系统下搭建Linux环境,远程连接Linux系统
  • Ubuntu下RabbitMQ安装与简单使用
  • 力扣62.不同路径(动态规划)
  • TypeScript 泛型的概念和基本使用
  • redis的事务和watch机制
  • objectMapper.getTypeFactory().constructParametricType 方法的作用和使用
  • 【websocket - Tornado】简易聊天应用
  • TCP 三次握手,四次挥手
  • Nginx之Rewrite重定向
  • uni-app微信小程序开发自定义select下拉多选内容篇