位置: 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实现电影推荐小程序(微信小程序基于什么框架)

  • 12月工资1月发个税怎么算
  • 临时工工资能否用公户支付
  • 应交税费科目核算
  • 增值税发票可以抵扣多少
  • 货物尾款优惠如何计算
  • 已核销的贷款收回计入什么科目
  • 出售固定资产的税率是多少
  • 应付职工薪酬月末结转到哪里
  • 国外公司进口能退税吗
  • 红字发票怎么申报?
  • 公司的净资产怎么看
  • 货物和劳务
  • 建筑挂靠管理费用如何账务处理?
  • 承兑汇票贴单怎么贴
  • 股东利润分配预缴税款
  • 普票清单可以是专票吗
  • 地方教育附加可以在企业所得税前扣除吗
  • 出口报关单中有哪些内容
  • 计算应纳税所得额时可以扣除的项目有
  • 印花税可以计入在建工程吗
  • 出口退税的条件包括哪些( )
  • 小规模纳税人增值税税收优惠政策
  • 其他应付款计入什么科目
  • 广告业进项都能开什么票
  • php可变参数
  • 家庭版系统如何重装成专业版本
  • win10远程连接win7密码正确,无法登陆
  • 提示语是什么意思?
  • 如何通过路由器查看宽带账号密码
  • 小规模差额征税是什么意思
  • 股权收购特殊性税务处理案例
  • 先出库还是先发货
  • css合并为单一边框
  • url传变量
  • 路由器怎么才能用
  • msmpeng.exe 是什么
  • 促销商品的方法
  • 税款返还的会计处理方法
  • 小规模纳税人实收资本印花税怎么算
  • yii2框架中文手册
  • 承兑汇票无法兑付
  • 深度学习中的FPN详解
  • 外经证过期没核销罚多少钱
  • 贷款需要考虑什么
  • Linux sqlite3 基本命令
  • 甲企业持有乙企业股票的市价为920000
  • 白条怎么收拾
  • 税率开错了会影响贷款吗
  • 固定资产货币化,货币资产保险化,保险资产信托化
  • 不动产经营租赁发票开具注意
  • 汇算清缴如何调报表
  • 其他应收款科目余额在贷方表示什么
  • 什么是原始凭证?简述原始凭证审核的内容
  • 高新技术企业的申报条件
  • 免抵税额什么意思
  • 农民专业合作社是企业法人吗
  • 预收物业费预收什么意思
  • 差旅费借贷记账法的会计分录
  • 私人边际成本怎么算
  • 变更公司名称后银行如何做
  • mysql 5.6 5.7
  • windows禁止安装
  • win8.1开机密码忘了
  • mssqlserver安装
  • 运行linux
  • centos 查看服务
  • win7出现问题
  • office2016formac更新了什么 新版macoffice软件功能一览
  • mac adobe flash player一直提示更新
  • Ubuntu 14.04安装java的方法以Ubuntu14.04为例
  • linux网卡bound
  • linux系统添加新用户
  • win10更新后浏览器打不开网页
  • linux怎么禁用用户
  • nodejs自启动
  • jQuery中的select操作详解
  • js 仿真
  • unity3d mod
  • 抓落实韧劲不足的具体表现
  • 税务工商指的是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设