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

  • 网络推广之博客推广技巧(网络推广论坛)

    网络推广之博客推广技巧(网络推广论坛)

  • 电脑微信怎么扫描图中二维码(电脑微信怎么扫码登录)

    电脑微信怎么扫描图中二维码(电脑微信怎么扫码登录)

  • 腾讯会议扬声器是什么(腾讯会议扬声器要开吗)

    腾讯会议扬声器是什么(腾讯会议扬声器要开吗)

  • 微信运动某人突然没了(微信运动某人突然没了再加上对方能知道吗)

    微信运动某人突然没了(微信运动某人突然没了再加上对方能知道吗)

  • 卖家拒绝了退款并拉黑(卖家拒绝了退款并拉黑钱会退回吗)

    卖家拒绝了退款并拉黑(卖家拒绝了退款并拉黑钱会退回吗)

  • 表格打开是灰色空白(表格打开是灰色怎么调)

    表格打开是灰色空白(表格打开是灰色怎么调)

  • 腾讯会议会自动打开摄像头吗(腾讯会议会自动结束吗)

    腾讯会议会自动打开摄像头吗(腾讯会议会自动结束吗)

  • 华为nova724小时怎么设置(华为nova7pro24小时怎么设置)

    华为nova724小时怎么设置(华为nova7pro24小时怎么设置)

  • qq群允许多少人语音聊天(qq群多少人不需要同意)

    qq群允许多少人语音聊天(qq群多少人不需要同意)

  • 华为lio一an00是什么意思(华为li0-an00什么型号)

    华为lio一an00是什么意思(华为li0-an00什么型号)

  • vlvl是什么牌子的手机(vlvld是什么牌子)

    vlvl是什么牌子的手机(vlvld是什么牌子)

  • 弹性ip什么意思(弹性ip和公网ip区别)

    弹性ip什么意思(弹性ip和公网ip区别)

  • 华为mate30pro四个摄像头的作用

    华为mate30pro四个摄像头的作用

  • b站卡超过40g还免流吗(b站卡超过40g怎么计费)

    b站卡超过40g还免流吗(b站卡超过40g怎么计费)

  • 怎么查看抖币送给了哪些人(如何查看抖币送给了谁)

    怎么查看抖币送给了哪些人(如何查看抖币送给了谁)

  • 手机经常摔有什么影响吗(手机经常摔了会不会影响性能)

    手机经常摔有什么影响吗(手机经常摔了会不会影响性能)

  • 怎样设置收款语音播报(怎样设置收款语音音响功能)

    怎样设置收款语音播报(怎样设置收款语音音响功能)

  • opporeno3如何强制关机(opporeno3如何强制刷机)

    opporeno3如何强制关机(opporeno3如何强制刷机)

  • 微机的存储系统一般指(微机存储系统按容量从大到小的顺序)

    微机的存储系统一般指(微机存储系统按容量从大到小的顺序)

  • 手机qq如何发送gif(手机QQ如何发送共享文档)

    手机qq如何发送gif(手机QQ如何发送共享文档)

  • 苹果xr是几代(苹果xr是什么时候发布的)

    苹果xr是几代(苹果xr是什么时候发布的)

  • 朋友圈小人可以删除吗(朋友圈小人可以点赞吗)

    朋友圈小人可以删除吗(朋友圈小人可以点赞吗)

  • vivox27是三星屏幕吗(vivox23屏幕是三星屏幕)

    vivox27是三星屏幕吗(vivox23屏幕是三星屏幕)

  • 安卓拦截短信在哪里看(安卓 拦截短信)

    安卓拦截短信在哪里看(安卓 拦截短信)

  • iPhone手机怎样开启原彩显示(iphone手机怎样开热点)

    iPhone手机怎样开启原彩显示(iphone手机怎样开热点)

  • 手机图虫怎么发视频(图虫发图片有啥要求)

    手机图虫怎么发视频(图虫发图片有啥要求)

  • 详解Linux中的cat文本输出命令用法(linux 中cat)

    详解Linux中的cat文本输出命令用法(linux 中cat)

  • 车船税税金及附加计入管理费用嘛
  • 收回应收账款编制什么凭证
  • 预计销售收入增长是什么意思
  • 购销合同签定有法律效力吗
  • 影响年初未分配利润的事项
  • 异地项目预缴个人所得税
  • 投资性房地产房产税应按从价还是从租
  • 合伙企业个人所得税怎么申报
  • 供暖的配套费是不是开口费
  • 拆迁置换安置房
  • 质量问题用实物形容
  • 因质量问题怎么赔偿
  • 事业单位没有经过公示的内部文件不生效 出处
  • 小规模纳税人不允许开具零税率发票
  • 专票红冲如何做账
  • 园林绿化公司购入剪刀怎么做会计分录
  • 存款利息天数算头不算尾如何计算
  • 损益类科目包括收入类和费用类么
  • 股权变更之后税务变更
  • 为什么预付账款是流动资产
  • 固定资产可以一次性抵扣进项税吗
  • linux命令“ln file1 file2”的含义是
  • 简单了解php编程软件
  • php基础入门
  • 传递优化的作用
  • php怎么自学
  • 委托境外研发费用怎么扣除
  • PHP:pg_escape_identifier()的用法_PostgreSQL函数
  • config.cfg是什么文件
  • 没收逾期未收回的包装物押金
  • 周转材料的领用及摊销方法
  • 年终结算啥意思
  • element-ui dialog
  • framework3.5怎么打开
  • 海关发票丢失怎么处理
  • 新增总产值
  • 苹果cmsjsui
  • 旅行社的会计分录怎么做
  • 销售旧货和销售使用过的固定资产
  • 增值税的滞纳金税率
  • 收款收据可以盖业务章吗
  • 应收帐款质保金
  • 兼职人员的差旅费
  • 医疗器械和医疗耗材是一回事吗
  • 劳务外包会计分录最新
  • 小规模纳税人的条件
  • 小规模纳税人免税政策2022
  • 企业所得税汇算清缴会计分录
  • 购买性支出和转移性支出的区别
  • mysql数据库压力测试工具
  • 矿场维护
  • 个人开发者要缴税吗
  • 租赁合同印花税怎么算
  • 施工审图费计入什么科目
  • 专项费用会计分录
  • 广告费和业务宣传费税前扣除基数
  • 医疗器械行业进货未取得发票怎么做会计分录的
  • 企业偿债能力的含义
  • 如何申请高新技术企业认定
  • mysql5.7.17下载
  • mysql索引基础
  • macbookpro mysql
  • mysql行锁的作用
  • windows10新功能
  • centos下安装windows
  • sentstrt.exe - sentstrt进程是什么文件 有什么用
  • Linux改变文件或目录的读写和执行权限的命令是
  • win7删除开机启动程序
  • windows7怎么关不了机怎么办
  • Win10系统无法运行程序
  • 游戏unity报错
  • 多个checkbox选中触发事件
  • vue怎么实现多页面
  • unity获取鼠标点击的位置
  • 企业自建旧房产怎么处理
  • 组织收入原则是应收尽收坚决不收过头税费
  • 耕地占用税是土地增值税开发成本吗
  • 税务局经费来源
  • 契税的征收机关是哪里
  • 非房地产企业转让旧房土地增值税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设