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

  • n28a频段和n28频段有区别吗(n28频段什么意思)

  • 2021微信退群别人能看到吗(微信退群其它人能看到吗)

  • 浏览器扫码在哪里打开(浏览器扫码在哪里打开华为)

  • 苹果11通话设置在哪(苹果11手机通话怎么录音)

  • 小米青春版和标准版的区别(小米青春版比标准版差多少)

  • iphone摄像头玻璃碎了怎么办(iphone摄像头玻璃是什么材质)

  • 怎么把视频弄成文件形式?(怎么把视频弄成链接)

  • 钉钉直播课可以看回放吗(钉钉直播课可以在电脑上看吗)

  • 华为nova7se截屏怎么弄(华为nova7se截屏长图)

  • 光猫lan灯一直闪烁

  • wifi万能钥匙未找到相关热点信息什么意思(wifi万能钥匙未找到相关热点信息)

  • 抖音可以知道被谁举报(抖音可以知道被谁拉黑)

  • 文档出现乱码怎么恢复(文档乱码怎么办)

  • 电脑微信怎么打开摄像头(电脑微信怎么打印文件)

  • 华为云空间满了怎么清理(华为云空间满了怎么删除照片)

  • 天猫精灵会监听吗(天猫精灵监听用户说话)

  • 小度在家可以绑定几个手机(小度在家可以绑定微信吗)

  • 抖音对方把我拉黑了还能刷到我吗(抖音对方把我拉黑了我看他主页他访客有我记录吗)

  • 手机小屏幕怎么弄出来(手机小屏幕怎么开)

  • 美图t9是双卡双待的吗(美图手机双卡双待的是哪一款)

  • ppt如何插音乐如何设置(ppt怎么样插音乐)

  • 订阅号一天可以发几篇文章 (订阅号一天可以发几篇文章)

  • 西瓜视频怎么看已缓存视频(西瓜视频怎么看是不是原创)

  • 为什么打不通对方电话(为什么打不通对方的号码)

  • 饿了么如何收藏店铺(饿了么如何收藏餐品)

  • 什么是DNS?Win11/10上的DNS问题解决方法汇总(什么是馥芮白)

  • Win10 Build 19044.1320 (21H2)更新补丁KB5006738预览版发布(附更新修复内容汇总)

  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设 电脑维修 湖南楚通运网络