当前位置: 首页 > news >正文

【TypeScript】中关于 { 声明合并 } 的使用及注意事项

概念

在TS中,如果定义了多个相同命名的函数,接口或者class 类,那么它们会自动合并成一个类型

在这里插入图片描述

函数的合并:

前面章节讲解的函数重载就是使用了定义多个函数的类型进行合并:

function reverse(x: number): number;
function reverse(x: string): string;
function reverse(x: number | string): number | string {if (typeof x === 'number') {return Number(x.toString().split('').reverse().join(''));} else if (typeof x === 'string') {return x.split('').reverse().join('');}
}

接口的合并:

interface Cat {name: string
}
interface Cat {age: number
}let obj: Cat = {name: "小花",age: 12
}
console.log(obj);  //{name: '小花', age: 12}

注意
合并时,如果出现同名的属性,类型必须要保持唯一一致

interface Cat {name: string
}
interface Cat {age: number,name:number  //此处,类型不唯一,会报错    //报错:后续属性声明必须属于同一类型。属性“name”的类型必须为“string”,但此处却为类型“number”。
}

接口中方法的继承,也是同理

interface Cat {name: string,alert(s: string, y: string): string
}
interface Cat {age: number,name: string,alert(s: string, y: string): string
}let obj: Cat = {name: "小花",age: 12,alert(perim, item) {return perim + item}}
console.log(obj.alert("吃饭", "睡觉"));    //吃饭睡觉

类的合并规则与接口的合并规则也要保持一致。


总结

以上就是在 TS 中有关在声明类型的时候,同名的类型规则会触发合并,不过也要注意其中的一些注意事项。


🚵‍♂️ 博主座右铭:向阳而生,我还在路上!
——————————————————————————————
🚴博主想说:将持续性为社区输出自己的资源,同时也见证自己的进步!
——————————————————————————————
🤼‍♂️ 如果都看到这了,博主希望留下你的足迹!【📂收藏!👍点赞!✍️评论!】
——————————————————————————————

http://www.lryc.cn/news/122052.html

相关文章:

  • Day 43
  • 服务器安全需要注意的几个方面?
  • Mysql数据库第十三课-----------sql语句的拔高3--------直冲云霄
  • 计算机网络-物理层(一)物理层的概念与传输媒体
  • 差分升级在物联网水表上的实现与应用(学习)
  • ubuntu磁盘管理
  • 前端处理后端返回的数据中有\n\n字样的换行符标识
  • matlab解常微分方程常用数值解法2:龙格库塔方法
  • 数据结构-栈(C语言简单实现)
  • 山东布谷科技直播软件源码探索高效、稳定直播传输的技术介绍:流媒体传输技术
  • LeetCode 热题 100 JavaScript -- 74. 搜索二维矩阵
  • 任我行 CRM SQL注入漏洞复现(HW0day)
  • [CKA]考试之集群故障排查 – kubelet故障
  • VBA技术资料MF42:VBA_从Excel中上面的单元格复制公式
  • ORB-SLAM2第一节---单目地图初始化
  • Postman 汉化及下载
  • 【运维】Zabbix简介及其应用领域
  • vue 设置了表单验证的el-input,在触发验证后无法继续输入的问题解决
  • 基于smardaten无代码开发智能巡检系统,让无人机飞得更准
  • 51项目——智能垃圾桶
  • HCIP——堆叠技术
  • 芯片工程师求职题目之CPU篇(3)
  • Grounding dino + segment anything + stable diffusion 实现图片编辑
  • 如何选择更快更稳定的存储服务器
  • 此芯科技加入 openKylin 开源社区
  • 开发一个RISC-V上的操作系统(七)—— 硬件定时器(Hardware Timer)
  • 电池的正极是带正电?
  • Go 协程为什么比进程和线程占用的系统资源低?
  • 性能测试—Jmeter工具
  • 【分布式系统】聊聊高性能设计