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

  • 荣耀桌面小组件怎么设置(荣耀桌面小组件图库怎么变大)

    荣耀桌面小组件怎么设置(荣耀桌面小组件图库怎么变大)

  • 小米手机的通知栏如何设置(小米手机的通知栏在哪里能找到)

    小米手机的通知栏如何设置(小米手机的通知栏在哪里能找到)

  • 微信新消息提醒怎么何设置(微信新消息提醒打开了还是没有声音)

    微信新消息提醒怎么何设置(微信新消息提醒打开了还是没有声音)

  • 华为手机微信密码怎么设置(华为手机微信密码在哪里看)

    华为手机微信密码怎么设置(华为手机微信密码在哪里看)

  • 探探发消息别人收不到(探探给人发消息别人看不到)

    探探发消息别人收不到(探探给人发消息别人看不到)

  • 苹果icloud照片怎么下载(苹果icloud照片怎么删除)

    苹果icloud照片怎么下载(苹果icloud照片怎么删除)

  • 编码器的作用是(直流编码电机中编码器的作用是)

    编码器的作用是(直流编码电机中编码器的作用是)

  • 兄弟7340硒鼓清零(兄弟7470硒鼓清0)

    兄弟7340硒鼓清零(兄弟7470硒鼓清0)

  • 抖音号搜索为空什么意思(抖音号搜索为空怎样设置)

    抖音号搜索为空什么意思(抖音号搜索为空怎样设置)

  • 手机烧屏是什么原因引起的(手机烧屏是什么原理)

    手机烧屏是什么原因引起的(手机烧屏是什么原理)

  • 电脑开机长鸣一直响(电脑开机长鸣一声短鸣三声)

    电脑开机长鸣一直响(电脑开机长鸣一声短鸣三声)

  • 手机如何扫描图片文字(手机如何扫描图片变成电子版)

    手机如何扫描图片文字(手机如何扫描图片变成电子版)

  • 荣耀屏幕录制设置在哪(荣耀 屏幕录制)

    荣耀屏幕录制设置在哪(荣耀 屏幕录制)

  • p40比p30强多少(p40比p30好在哪里)

    p40比p30强多少(p40比p30好在哪里)

  • 手机摔地上会对内部有影响吗(手机摔地上会对屏幕有影响吗)

    手机摔地上会对内部有影响吗(手机摔地上会对屏幕有影响吗)

  • 华为eva-al00是什么型号(华为evaal00是什么型号多少钱)

    华为eva-al00是什么型号(华为evaal00是什么型号多少钱)

  • 微信注销60天后状态(微信注销60天后再登陆会怎么样)

    微信注销60天后状态(微信注销60天后再登陆会怎么样)

  • airpods怎么切歌(AirPods怎么切歌)

    airpods怎么切歌(AirPods怎么切歌)

  • 魅族16s按键音怎么关(魅族16thplus音量键更换)

    魅族16s按键音怎么关(魅族16thplus音量键更换)

  • 卡显示hd是什么意思啊(卡信号显示hd)

    卡显示hd是什么意思啊(卡信号显示hd)

  • 荣耀9以后会有人脸识别吗(华为荣耀9 之后的机子)

    荣耀9以后会有人脸识别吗(华为荣耀9 之后的机子)

  • 手机加入黑名单打电话会怎么说(手机加入黑名单后对方发信息显示什么)

    手机加入黑名单打电话会怎么说(手机加入黑名单后对方发信息显示什么)

  • 台积电芯片制造在哪(台积电芯片制造技术员要几轮面试)

    台积电芯片制造在哪(台积电芯片制造技术员要几轮面试)

  • 抖音解除拉黑对方知道吗(抖音解除拉黑对方后会推送吗)

    抖音解除拉黑对方知道吗(抖音解除拉黑对方后会推送吗)

  • uniapp 使用 mui-player 插件播放 m3u8/flv 视频流(Uniapp 使用mocjk)

    uniapp 使用 mui-player 插件播放 m3u8/flv 视频流(Uniapp 使用mocjk)

  • Java获取/resources目录下的资源文件方法(java获取resources下文件路径)

    Java获取/resources目录下的资源文件方法(java获取resources下文件路径)

  • 新成立小规模纳税人开发票如何办理
  • 公司商标注册费用属于什么费用
  • 已认证未抵扣的进项怎么填写
  • 甲方代付材料费合法吗
  • 人力资源服务费发票可以抵扣吗
  • 银行存款没有期初余额的总账怎么填
  • 抵账房好不好
  • 非财政拨款结余是什么科目
  • 委托进口增值税如何抵扣
  • 支付购买机器的价款
  • 收到去年所得税汇算清缴退税账务处理
  • 企业营改增后的会计处理有何变化
  • 进项发票未抵扣部份开红冲后当月能抵扣吗?
  • 不应计入税金及附加的有哪些
  • 股权转让印花税税率是多少
  • 环评公司的成本核算
  • 企业筹办期多久
  • 进项税额转出的
  • 多结转成本的会计分录
  • 公益性捐赠包括向脱贫地区捐赠吗
  • 收到工伤保险怎么做分录
  • 旅游业小规模差额计税的能开1%
  • 残疾人保障金是强制性的吗
  • php防止再次刷新
  • 利息股息红利个人所得税税率
  • 酒店没有营业执照开业员工有责任吗
  • 车船使用税凭证还要过户吗怎么办
  • mom.exe是什么进程
  • 百度地图api的基本使用
  • 用php做一个表格
  • 其他综合收益的来源
  • 商住房买卖过户流程
  • 发票抬头可以是两个人吗
  • javaweb实例教程
  • pytorch的环境配置
  • 什么是半监督算法
  • 公允价值变动损益怎么算出来的
  • wordpress自定义文章模板
  • 出口视同内销怎么申报
  • 循环logo
  • 坏账准备是什么性质的科目
  • 外埠施工企业
  • wordpress换域名后主题乱了
  • mysql基本命令大全
  • 科目余额表该怎么填
  • SQL Server实现split函数分割字符串功能及用法示例
  • 跨年收入退款如何处理
  • 企业出售商铺需交税吗
  • 开票金额和发票金额
  • 工资个税什么时候用综合所得公式计算
  • 递延所得税如何计提
  • 进项税额转出如何申报
  • 收到银行承兑汇票后,如何取钱
  • 在贫困户入股分红大会上的讲话
  • 购置固定资产进项税处理的变迁
  • 成本核算方法有哪几种
  • 小微企业的认定标准2023最新
  • 账户利息计入什么科目
  • 剩余股利政策发放股利后的年末未分配利润
  • 一个企业至少应纳多少税
  • 金融企业借款费用计入
  • sql server入门新手教程
  • windows故障
  • freebsd服务器搭建
  • win8如何删除登录密码
  • windows注销登录会怎样
  • vmware中安装centos7
  • win7开机显示一堆英文
  • Linux系统下的Samba客户端配置
  • JQuery.Ajax()的data参数类型实例详解
  • 显示打包成功但是没有文件
  • linux怎么设置
  • Python内置函数的应用操作
  • bat文件命令大全
  • 天气球球怎么下载
  • 辽宁省耕地占用税税率
  • 2021年四川医保缴费截止时间
  • 包头市税务局赵文胜
  • 国家税务总局南京市秦淮区税务局纳税服务中心
  • 云南国税申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设