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

  •  品牌必须是主角:有效的传播始于品牌(品牌必须是主体吗)

    品牌必须是主角:有效的传播始于品牌(品牌必须是主体吗)

  • 华为手表gt3怎么看微信内容(华为手表gt3怎么打电话)

    华为手表gt3怎么看微信内容(华为手表gt3怎么打电话)

  • 华为单手模式怎么触发(华为单手模式怎么开启快捷键)

    华为单手模式怎么触发(华为单手模式怎么开启快捷键)

  • 手机收到信息没有声音是怎么回事(手机收到信息没有声音是怎么回事安卓)

    手机收到信息没有声音是怎么回事(手机收到信息没有声音是怎么回事安卓)

  • 查看ip命令

    查看ip命令

  • vivoy5s呼吸灯怎么设置(vivox50呼吸灯)

    vivoy5s呼吸灯怎么设置(vivox50呼吸灯)

  • 小米mi5x是不是全网通(小米mi5x怎么样)

    小米mi5x是不是全网通(小米mi5x怎么样)

  • 软件授权服务报告无法激活计算机(软件授权服务报告许可证评估失败)

    软件授权服务报告无法激活计算机(软件授权服务报告许可证评估失败)

  • 华为荣耀x10什么时候上市(华为荣耀x10什么处理器)

    华为荣耀x10什么时候上市(华为荣耀x10什么处理器)

  • 电脑可以边充电边使用吗(电脑可以边充电边插耳机吗)

    电脑可以边充电边使用吗(电脑可以边充电边插耳机吗)

  • 查找朋友对方会发现吗(查找朋友对方会有提示吗)

    查找朋友对方会发现吗(查找朋友对方会有提示吗)

  • 抖音好友可见对方知道吗(抖音好友可见对方会看到我的设置?)

    抖音好友可见对方知道吗(抖音好友可见对方会看到我的设置?)

  • 微信每天加多少人会被限制(微信每天加多少好友会被限制)

    微信每天加多少人会被限制(微信每天加多少好友会被限制)

  • 抖音怎么判定低质量视频(抖音怎么判定低价卖货)

    抖音怎么判定低质量视频(抖音怎么判定低价卖货)

  • 电脑系统进不去了怎么修复(电脑系统进不去一直转圈)

    电脑系统进不去了怎么修复(电脑系统进不去一直转圈)

  • 为什么探探之前聊天的人找不到了(为什么探探之前不能说话)

    为什么探探之前聊天的人找不到了(为什么探探之前不能说话)

  • vivo关机快捷键在哪(vivo手机快捷关机)

    vivo关机快捷键在哪(vivo手机快捷关机)

  • 激活锁是什么(激活锁是什么玩意儿)

    激活锁是什么(激活锁是什么玩意儿)

  • iphone6s是什么sim卡(iPhone6s是什么芯片)

    iphone6s是什么sim卡(iPhone6s是什么芯片)

  • 手机银行可以绑定几张卡(手机银行可以绑定别人的银行卡吗)

    手机银行可以绑定几张卡(手机银行可以绑定别人的银行卡吗)

  • 手机恶意软件怎么删除(手机恶意软件怎么解除)

    手机恶意软件怎么删除(手机恶意软件怎么解除)

  • ip地址默认网关怎么填(ip地址默认网关子网掩码)

    ip地址默认网关怎么填(ip地址默认网关子网掩码)

  • 抖音的水印在哪设置(抖音视频水印在哪)

    抖音的水印在哪设置(抖音视频水印在哪)

  • 小米9出厂有贴膜吗(小米9贴膜教程视频)

    小米9出厂有贴膜吗(小米9贴膜教程视频)

  • 路由器usb接口有什么用 能干什么(路由器usb接口有电流声)

    路由器usb接口有什么用 能干什么(路由器usb接口有电流声)

  • 车前草的功效与作用及禁忌(车前草的功效与作用及禁忌症)

    车前草的功效与作用及禁忌(车前草的功效与作用及禁忌症)

  • 10倍效能不是梦:“软件工程3.0”之下软件研发(10倍理论)

    10倍效能不是梦:“软件工程3.0”之下软件研发(10倍理论)

  • 房开企业涉及哪些税种
  • 销售固定资产清单怎么做
  • 先报个税还是先报增值税,有影响吗?
  • 个体户一季度利润28万用缴纳增值税吗
  • 本地的住宿费怎么交
  • 弥补上年亏损的成语
  • 外地企业如何在本地纳税
  • 股息红利税补缴什么意思
  • 债券作为交易性金融资产的账务处理
  • 公司的利润怎样分配
  • 印花税已经缴纳了还需要申报
  • 开了专票是否交文化事业建设费?
  • 加权平均净资产收益率等于企业净利润除以
  • 研发支出期末需结转吗
  • 长期股权投资的交易费用计入哪里
  • 其他应付款挂多少有风险
  • 文件类型错误请重新选择
  • 计提当月电费账务处理
  • 腾讯电脑管家网址多少
  • 如何设置电脑从硬盘启动
  • 挂证不付工资只代缴社保账务处理
  • 出租固定资产取得的净收益计入什么科目
  • 中科院怎么赚钱
  • 国家公园好玩吗
  • 增值税发票查询结果不一致是什么意思
  • 纳税检查调整的销售额确认收入吗
  • vue插槽有什么作用
  • 工程收到款项会计分录
  • 瑞吉外卖项目简历
  • 从零开始作者
  • 人工智能 深度
  • 《推荐一个好地方》图书馆
  • php设置title
  • python描述器有什么用
  • 营业外收支的账户是什么
  • 有销项无进项怎么处理
  • 2022年最新电脑操作系统
  • 深入分析原因,找出问题根源并有效破解
  • vue+ele
  • 财政拨款结余明细科目编码
  • 应付账款尾差如何处理
  • 月底如何结转成本
  • 小规模纳税人普票税率是多少
  • 收到退回的增值税,应当作为营业外收入核算对吗
  • 开具成品油发票时注意事项是?
  • 销项税多做了怎么冲
  • 公司预支款应注意什么
  • 小规模纳税人系统查询
  • 培训学校预收学费可退吗
  • 公司社保收费标准
  • 息税前利润变动百分比计算公式
  • 最新商业会计科目做账
  • win10预览版好吗
  • linux系统百科
  • 任务栏安全中心的图标没有了
  • rhel7
  • xshell使用ssh命令远程连接linux
  • win10系统如何关闭杀毒软件和防火墙
  • Mtdacq.exe - Mtdacq是什么进程 有什么用
  • win10系统中怎么打开IE浏览器
  • 安卓布局优化
  • 批处理新建多个文件夹
  • jquery日期控件onchange事件
  • Node.js中的事件循环是什么
  • android如何运行项目
  • Python HTTP客户端自定义Cookie实现实例
  • unity-
  • linux下mysql如何自动备份shell脚本
  • cshrc语法
  • python 模块定义
  • listview控件设置多个列
  • Python爬取网易云音乐歌单内歌曲歌手封面播放地址
  • unityugui优化
  • python二叉树
  • javascript基础入门视频教程
  • flask框架官方文档
  • 陕西省税务局机关服务中心
  • 地税登记证和税务登记证是一样的吗
  • 房子契税发票没给怎么办
  • 龙岗税务分局管辖范围
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设