游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

TypeScript,泛型,泛型类,函数泛型函数类型接口和泛

  泛型
  泛型,在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型,各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。泛型程序设计(genericprogramming)是程序设计语言的一种风格或范式。
  泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。
  泛型的特点
  1、支持多种类型的数据(不特定的数据类型);2、传入的类型与返回的类型应该是相同的。3、使用类型变量且指标是类型,不是值;4、泛型的类型取决于调用的时候传入的参数类型;5、对不特定类型数据的校验。
  泛型的案例
  1、泛型函数;2、泛型类;3、泛型函数类型的接口;4、泛型约束。代码案例:
  案例1:定义泛型函数functionidentityT(arg:T):T{returnarg;}类型推论,编译器会根据传入的参数自动地确定T的类型letidentity1identity(identity1);console。log(identity1,identity1);指定了T是string类型,作为一个参数传给函数letidentity2identitystring(identity2);console。log(identity2,identity2);定义泛型函数letshowInfoT(val:T):Tval;letmyNameshowInfostring(myName);console。log(myName,myName);泛型类classMinObjectT{publiclist:T〔〕〔〕;add(value:T):void{this。list。push(value);}min():T{letminValuethis。list〔0〕;for(vari0;ithis。list。length;i){if(minValuethis。list〔i〕){minValuethis。list〔i〕;}}returnminValue;}}实例化类,并且规定类的T(泛型)代表numbervarminObject1newMinObjectnumber();minObject1。add(2);minObject1。add(3);minObject1。add(9);minObject1。add(1);console。log(minObject1。min(),minObject1。min());实例化类,并且规定类的T(泛型)代表stringvarminObject2newMinObjectstring();minObject2。add(b);minObject2。add(c);minObject2。add(d);minObject2。add(a);console。log(minObject2。min(),minObject2。min());函数类型接口interfaceConfigFn1{(value1:string,value2:string):string;}vargetData1:ConfigFn1function(value1:string,value2:string):string{returnvalue1value2;}console。log(getData1(),getData1(name,小奋斗,1));泛型函数类型的接口interfaceConfigFn2{T(value:T):T;}vargetData2:ConfigFn2functionT(value:T):T{returnvalue;}console。log(getData2(),getData2(小奋斗,2));泛型函数类型接口interfaceConfigFn3T{(value:T):T;}vargetData3:ConfigFn3stringfunctionU(value:U):U{returnvalue;}console。log(getData3(),getData3(小奋斗,3));
  输出:identity1identity1identity2identity2myNamemyNameminObject1。min()1minObject2。min()agetData1()name小奋斗,1getData2()小奋斗,2getData3()小奋斗,3
  案例2:泛型约束定义接口,接口规定必须有length这一属性。interfaceLengthwise{length:number}使用接口和extends关键字实现约束,此时T类型就必须包含length这一属性。functionechoValueTextendsLengthwise(arg:T):T{console。log(arg。length)通过,因为被约束的T类型是包含length属性的returnarg}echoValue(33)类型number的参数不能赋给类型Lengthwise的参数。console。log(echoValue(),echoValue({value:30,length:100}));console。log(echoValue(),echoValue(〔10,20,30,40〕));泛型约束中使用类型参数constgetProps(obj,propName){returnobj〔propName〕}consto{a:aaaaa,b:bbbbb}console。log(getProps,getProps(o,c));getPropsundefinedconsole。log(getProps,getProps(o,a));getPropsaaaaa应用泛型keyof用于遍历某种类型的属性(可以操作接口、类以及基本数据类型)constgetProps2T,KextendskeyofT(obj:T,propName:K){returnobj〔propName〕}consto2{a:aaaaa,b:bbbbb}console。log(getProps,getProps2(o2,c));类型c的参数不能赋给类型ab的参数。console。log(getProps2,getProps2(o2,b));getProps2bbbbb
  输出:100echoValue(){value:30,length:100}4echoValue()〔10,20,30,40〕getPropsundefinedgetPropsaaaaagetProps2bbbbb

哈尔滨乡村现2000台挖矿机24小时疯狂偷电IT之家1月6日消息虽然比特币等虚拟货币近半年来价格暴跌,但仍阻挡不住挖矿人的存在,挖矿需要消耗大量的电量,有时候随着虚拟货币价格的下跌,甚至还入不敷出,有些人于是乎就打起了歪……力在哪里小学科学优秀教学设计范文作为一名老师,就有可能用到教学设计,借助教学设计可以更好地组织教学活动。教学设计要怎么写呢?下面是小编精心整理的《力在哪里》小学科学优秀教学设计范文,欢迎阅读,希望大家能够喜欢……用藕断丝连这个成语造句藕断丝连比喻没有彻底断绝关系,多指男女之间情思难断,如何用藕断丝连造出比较好的句子呢?接下来品学网网小编为您带来藕断丝连的造句内容,大家一起来学习一下吧。藕断丝连的解释〔……苏宁易购2018年净利润133。20亿元,同比增长216。2IT之家2月27日消息今日晚间苏宁易购发布了2018年度业绩快报,其中苏宁在2018年净利润为133。20亿元,同比增长216。20。这是在零售业整体增速放缓的背景下,连续两年……关于爬山虎的脚优秀教学反思《爬山虎的脚》这篇课文讲了爬山虎的叶子、爬山虎的形状和特点以及它是怎样用脚爬的,启发人们留心细致地观察周围的事物。了解作者是怎样用生动、准确的语言写出爬山虎叶子和脚的特点,通过……熊猫再将斗鱼告上法庭或因网红主播纠纷IT之家2月27日消息根据天眼查提供的最新消息,目前熊猫直播主体公司上海熊猫互娱文化有限公司将武汉斗鱼网络科技有限公司告上法庭,案由为不正当竞争纠纷,而开庭日期为3月18日。目……英雄联盟主播神超回应违约跳槽虎牙即日起暂时停播IT之家2月26日消息2月20日,斗鱼游戏直播官方微博消息,2019年2月10日,主播肖旺在合同期内单方面违约跳槽至第三方平台,已然严重侵犯了斗鱼权益,造成严重的经济损失及不良……美丽的孔雀的幼儿园中班说课稿【说教材】孔雀是孩子们喜欢的鸟类,他们在电视上、图书中见到过孔雀,而该活动进一步加深幼儿对孔雀的了解。《纲要》中指出:让幼儿感受生活的美,能用自己喜欢的方式表现自己的感受……央视权威解读5G时代我周围的辐射量会变大吗IT之家6月6日消息今日,工信部向中国电信、中国移动、中国联通、中国广电发放5G商用牌照。央视财经就5G时代来了,我周围的辐射量会变大吗问题报道了中国工程院院士邬贺铨的回应。很……动物和人体生命活动的调节摘要:免疫学发展迅速,给高中生物教科书的编写带来了挑战,一方面,要保证生物科学内容的科学性、准确性、规范性;同时要保证内容的时代性、前瞻性。笔者作为一线生物教师感悟到若不及时更……雷军微博强势示爱美图手机,网友称广告词都想好了IT之家11月20日消息昨天下午,小米集团公布了2018年Q3财报,财报显示,当季小米集团营收508亿元人民币,同比上涨49。1。此外,小米集团公告与美图公司签订战略合作协议。……马斯克说每周工作40小时无法改变世界,前员工怎么看12月16日消息,据《大西洋月刊》报道,今年8月份,埃隆马斯克(ElonMusk)在Twitter上表示,他正在考虑将上市电动汽车公司特斯拉私有化。这条推文让许多人感到意外,包……
钉钉会议能当监控?知情人士称衡水某高中用直播监管学生2月23日消息,有知情人士向凤凰网科技爆料称,衡水安平县志臻学校在寒假中疑似存在违规行为。知情人士表示,该学校在寒假期间依旧存在通过钉钉会议上网课的行为,并要求学生上课和自习时……微博2021年12月关闭发布垃圾信息的恶意营销账号和机器水军IT之家1月18日消息,今日上午,微博发布公告称,2021年12月关闭发布垃圾信息的恶意营销账号和机器水军账号746,035个,禁言发布垃圾信息的账号8,883个。时政有……沪教版妈妈,我们要活下去的教学反思《妈妈,我们要活下去》是五年级新教材的一篇课文。它的主人公是一个叫洛迪的小男孩,洛迪的爸爸出门办事去了,洛迪的妈妈海伦则在不久前动过一次大手术。那天,洛迪放学,因为下雨,他妈妈……行星的运动教学反思《行星的运动》是高中物理必修二第六章第一节的内容。本节课讲授天体运动的规律,而天体虽然对我们的生活影响巨大,但总觉得是距离遥远,认识较少。因此首先要让学生感兴趣,并学会将天体运……把铁路修到拉萨去优秀的说课稿一、说教材《把铁路修到拉萨去》,是义务教育课程标准实验教科书语文五年级下册第一组的第四篇课文,是一篇略读课文。这是一篇充满了昂扬向上的精神和英雄气概的文章。文章记叙了在高……植物妈妈有办法教学实录及点评《植物妈妈有办法》教学实录及点评激情引趣,谈话导入师:今天,咱们班要来一位小客人。瞧!她正朝我们走来了!(播放课件:可爱的植物小精灵由远走近,边走边介绍有趣的……第一节ampnbsp植物细胞的结构和功能一、教学目标:知识性目标:识别植物细胞的基本结构,说出这些结构的主要功能。技能目标:进一步尝试制作临时玻片标本。情感目标:通过制作标本的实验……销售员如何做好客户管理?用这个软件,蓝点客户关系管理系统,安装到云服务器上,随时随地都可以用电脑或手机来进行产品、客户、销售和服务的管理CRM能够快速记录潜在客户的信息,进行分类和跟踪;还可以将……新发现细菌可通过空气桥传播数千公里北京时间3月28日消息,据国外媒体报道,传统观点认为,细菌的迁移是通过人类和动物携带者实现的,而一项新研究称,这一观点可能并不完整。该研究发现,有些微生物可以在空气中传播……麻烦给个建议有没有稍微便宜点的显卡,性价比高的,牌子无所谓不你没有说全新,还是二手,二手的话,现在AMD的矿卡价格都不错,虽然现在又涨价了。全新的话,你可以买1060,1660Ti之类的丐版显卡。至于品牌,矿卡基本上没保,最多给你店保一……自然评选改变科学的10个计算机代码项目北京时间1月26日消息,据国外媒体报道,从Fortran到arXiv。org,这些计算机编码和平台让生物学、气候科学和物理学等学科的发展达到了真正日新月异的速度。2019……劳斯莱斯也推纯电动车低调又奢华日前,有海外媒体报道,劳斯莱斯目前正计划打造一款全新豪华纯电车型,新车或将基于Phantom(幻影)平台进行打造。据悉,这款全新电动车会搭载与宝马iX相同的动力总成及电池。宝马……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网