位置: IT常识 - 正文

【前端进阶】-TypeScript高级类型 | 泛型约束、泛型接口、泛型工具类型(前端进阶路线)

编辑:rootadmin
【前端进阶】-TypeScript高级类型 | 泛型约束、泛型接口、泛型工具类型

推荐整理分享【前端进阶】-TypeScript高级类型 | 泛型约束、泛型接口、泛型工具类型(前端进阶路线),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:前端基础进阶,前端技巧,前端进阶教程,前端进阶之旅,前端高手进阶,前端进阶教程,前端tl,前端高手进阶,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

博主主页👉🏻蜡笔雏田学代码 专栏链接👉🏻【TypeScript专栏】 前两篇文章讲解了TypeScript的一些高级类型 详细内容请阅读如下:🔽 【前端进阶】-TypeScript高级类型 | 交叉类型、索引签名类型、映射类型 【前端进阶】-TypeScript高级类型 | 类的初始化、构造函数、继承、成员可见性 今天来学习TypeScript另外一些高级类型! 感兴趣的小伙伴一起来看看吧~🤞

文章目录泛型创建泛型函数调用泛型函数泛型约束泛型接口泛型类泛型工具类型1.Partial<Type>2.Readonly<Type>3. Pick<Type, Keys>4. Record<Keys,Type>泛型

泛型是可以在保证类型安全前提下,让函数等与多种类型一起工作,从而实现复用,常用于:函数,接口,class中。

【前端进阶】-TypeScript高级类型 | 泛型约束、泛型接口、泛型工具类型(前端进阶路线)

需求:创建一个id函数,传入什么数据就返回该数据本身(也就是说,参数和返回值类型相同)。

function id(value: number): number { return value }

比如,id(10)调用以上函数就会直接返回10本身。但是,该函数只接受数值类型,无法用于其他类型。

为了能让函数接受任意类型,可以将参数类型修改为any。但是,这样就失去了TS的类型保护,类型不安全。

传入的类型与返回的类型应该是相同的。如果我们传入一个数字,我们只知道任何类型的值都有可能被返回。

function id(value: any): any { return value }

泛型在保证类型安全(不丢失类型信息)的同时,可以让函数等与多种不同的类型一起工作,灵活可复用。

实际上,在C#和Java等编程语言中,泛型都是用来实现可复用组件功能的主要工具之一。

创建泛型函数function id<Type>(value: Type): Type { return value }

解释:

语法:在函数名称的后面添加<><><>(尖括号),尖括号中添加类型变量,比如此处的Type。类型变量Type,是一种特殊类型的变量,只用于表示类型而不是值。Type类型变量相当于一个类型容器,能够捕获用户传入的类型(比如:number)(具体是什么类型由用户>调用该函数时指定)。因为Type是类型,因此可以将其作为函数参数和返回值的类型,表示参数和返回值具有相同的类型。类型变量Type,可以是任意合法的变量名称。调用泛型函数// 使用泛型创建一个函数:function id<Type>(value: Type): Type { return value}//调用泛型函数:// 1 以number类型调用泛型函数const num = id<number>(10)// 2 以string类型调用泛型函数const str = id<string>('a')// 3 以boolean类型调用泛型函数const ret = id<boolean>(true)

解释:

语法:在函数名称后面添加<><><>(尖括号),尖括号中指定具体的类型,比如,此处的number。当传入类型number后,这个类型就会被函数
本文链接地址:https://www.jiuchutong.com/zhishi/300585.html 转载请保留说明!

上一篇:请求转发与重定向到底有哪些区别?(请求转发与重定义的区别)

下一篇:微信小程序 | 基于ChatGPT实现电影推荐小程序(微信小程序基于什么框架)

  • 微信Windows3.3.5正式版更新了什么(微信 windows 3.3.0)

    微信Windows3.3.5正式版更新了什么(微信 windows 3.3.0)

  • 如何开启手机录屏功能(如何开启手机录屏)

    如何开启手机录屏功能(如何开启手机录屏)

  • oppo a55有没有nfc功能(oppo a55有没有快充)

    oppo a55有没有nfc功能(oppo a55有没有快充)

  • 淘宝过年有活动吗(淘宝过年活动什么时候开始2023)

    淘宝过年有活动吗(淘宝过年活动什么时候开始2023)

  • iphone接不到陌生电话怎么办(iphone接不到陌生电话但是会显示未接来电)

    iphone接不到陌生电话怎么办(iphone接不到陌生电话但是会显示未接来电)

  • 内存3000和3600的差别(内存3000和3600的差别大吗)

    内存3000和3600的差别(内存3000和3600的差别大吗)

  • 怎么截取电影一段视频(怎么截取电影一段)

    怎么截取电影一段视频(怎么截取电影一段)

  • 腾讯视频怎么和好友一起看(腾讯视频怎么和电视连接电视)

    腾讯视频怎么和好友一起看(腾讯视频怎么和电视连接电视)

  • excel提取含有关键字的行(excel提取含有关键字的列)

    excel提取含有关键字的行(excel提取含有关键字的列)

  • ins上快拍有访客记录吗(ins快拍访客记录会消失吗)

    ins上快拍有访客记录吗(ins快拍访客记录会消失吗)

  • 钉钉看回放老师知道是什么时候看的吗(钉钉看回放老师知道吗?)

    钉钉看回放老师知道是什么时候看的吗(钉钉看回放老师知道吗?)

  • 手机屏幕有白色线条(手机屏幕有白色圆圈是什么)

    手机屏幕有白色线条(手机屏幕有白色圆圈是什么)

  • 扣扣消息怎么不显示内容(扣扣消息怎么不显示以前的消息)

    扣扣消息怎么不显示内容(扣扣消息怎么不显示以前的消息)

  • 华为手机拍照泛白怎么解决(华为手机拍照泛白光)

    华为手机拍照泛白怎么解决(华为手机拍照泛白光)

  • 高德地图离线导航怎么用不了(高德地图离线导航是什么意思)

    高德地图离线导航怎么用不了(高德地图离线导航是什么意思)

  • ipad屏幕变暗变不回来(ipad屏幕变暗了怎么恢复)

    ipad屏幕变暗变不回来(ipad屏幕变暗了怎么恢复)

  • 为什么打字的时候会出现两遍(为什么打字的时候后面的字会自动删除)

    为什么打字的时候会出现两遍(为什么打字的时候后面的字会自动删除)

  • 荣耀20pro后盖是玻璃还是塑料(荣耀20pro手机后盖什么材质)

    荣耀20pro后盖是玻璃还是塑料(荣耀20pro手机后盖什么材质)

  • 什么是ie8浏览器(ie8浏览器是啥意思)

    什么是ie8浏览器(ie8浏览器是啥意思)

  • 小米6x支持什么快充(小米6x支持什么系统)

    小米6x支持什么快充(小米6x支持什么系统)

  • oppor17机身长为多少(oppor17机身长度和宽度)

    oppor17机身长为多少(oppor17机身长度和宽度)

  • 苹果11双微信吗(苹果11用双微信)

    苹果11双微信吗(苹果11用双微信)

  • 韩版s10和国行的区别(韩版三星s10跟国行区别很大么)

    韩版s10和国行的区别(韩版三星s10跟国行区别很大么)

  • 抖音作品审核中怎么回事(抖音作品审核中怎么回事 赶紧隐藏)

    抖音作品审核中怎么回事(抖音作品审核中怎么回事 赶紧隐藏)

  • 微信小程序使用腾讯地图(微信小程序使用记录删除)

    微信小程序使用腾讯地图(微信小程序使用记录删除)

  • Dedecms列表页分页按钮不显示终极解决秘诀(dedecms标签怎么用)

    Dedecms列表页分页按钮不显示终极解决秘诀(dedecms标签怎么用)

  • 增值税进项税抵扣时间
  • 增值税抵扣不够怎么解决
  • 支票存根必须盖银行章吗
  • 自产自销农产品企业所得税
  • 什么叫销售劳务
  • 股东分红利息
  • 出差过程中招待员工
  • 周转材料低值易耗品摊销
  • 管家婆进货单科目名称怎么录入?
  • 企业出售产品
  • 购买材料自用不退款
  • 合同不含税怎么算
  • 销售方未抄报税的专票购买方能抵扣吗?
  • 技术服务费发票税率是多少
  • 一般纳税人出租不动产增值税税率
  • 普通发票计量单位没填
  • 小规模纳税人季度多少免税
  • 税前不得扣除的项目
  • 企业短期投资的计划和管理过程叫做资本预算
  • 关税税率表包括哪些税种
  • 工业企业销售管理制度
  • 企业减免所得税
  • 政府高薪补贴
  • 企业研发过程中特殊收入的会计处理
  • 认购价和发行价的差价
  • windows更新下载的文件在哪
  • 贷款资金取现就无法追查了吗
  • 房地产转让的条件
  • win7纯净版怎么联网
  • 直接材料成本差异账户在平时登记贷方登记
  • 待处理财产损益借贷方向
  • thinkPHP中_initialize方法实例分析
  • yum命令详解
  • hive.
  • 关税对企业有什么影响
  • 拆迁补偿账务处理办法
  • 外购产品的会计分录
  • 资产负债表和现金流量表之间的勾稽关系
  • db2replace函数用法
  • 人工安装费是几个点税税率
  • 股东买房能在银行贷款吗
  • 社保年审流程示意图
  • sql server标识符
  • 如何理解合并报表编制程序中的调整与抵消处理
  • 社保可以直接计入费用吗
  • 消费税如何计量
  • 营业外收入如何开票
  • 在建的工程收到的发票
  • 进项税额转出在电子税务局怎么操作
  • 公司车辆购买保险申请
  • 建筑工程承包合同保证保险中,承保工程所有人
  • 公司销售二手车怎么申报增值税
  • 税前扣除项目主要包括
  • linux重置开机密码
  • mysql5.7免安装版
  • 输入法是全角在哪里设置
  • ubuntu调出命令行
  • mac设置启动系统
  • 用虚拟光驱安装系统教程
  • ubuntu18.04单网卡多ip
  • linux命令大全详解
  • linux安装.gz
  • windows7桌面右击
  • win7旗舰版好不好
  • windows8 应用商店
  • cortana win10
  • 模型变量是什么
  • adt Failed to create the Java Virtual Machine.
  • 全网最全的小说阅读器
  • android用eclipse
  • jquery插件使用教程
  • 深入了解是啥意思
  • 基于web的旅游网站毕业设计
  • js获取弹窗的元素
  • jquery可以实现哪些效果
  • 表单中的单选框
  • select ui
  • 四川省网上税务局申报流程
  • 车船税每年都是300怎么变成600
  • 浙江医保怎么使用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设