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

这篇具有很好参考价值的文章主要介绍了【TypeScript】中关于 { 声明合并 } 的使用及注意事项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概念

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

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

函数的合并:

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

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 中有关在声明类型的时候,同名的类型规则会触发合并,不过也要注意其中的一些注意事项。


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

到了这里,关于【TypeScript】中关于 { 声明合并 } 的使用及注意事项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • grpc流式使用和注意事项

    流式grpc Server-side streaming RPC:服务器端流式 RPC Client-side streaming RPC:客户端流式 RPC Bidirectional streaming RPC:双向流式 RPC 客户端代码 服务端代码 验证 分析 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eRmLdnpt-1622633151060)(readme.assets/image-202105271114

    2023年04月10日
    浏览(27)
  • TheadLocal的使用场景和注意事项

    在多线程编程中,数据共享和线程安全问题是一个很大的挑战。为了解决这个问题,Java 提供了 ThreadLocal 类,它能够让每个线程维护自己独立的变量副本。 ThreadLocal 的作用就是:为每个线程创建一个独立的变量副本,使得每个线程都可以操作自己的变量,而不会影响其他线程

    2024年02月07日
    浏览(34)
  • 第一次使用git注意事项

    一、git 第一次使用配置 配置用户名和邮箱 git config --global user.name “用户名” git config --global user.email “邮箱” 查看用户名和邮箱 git config user.name 显示:用户名 输入 git config user.email 显示用户邮箱 查看是否生成过SSH Key(密钥) 输入:cd ~/.ssh 输入:ls 输出 如果没有id_rsa 和 id

    2024年02月07日
    浏览(39)
  • 6 使用强制类型转换的注意事项

    概述         在C语言中,强制类型转换是通过直接转换为特定类型的方式来实现的,类似于下面的代码。         这种方式可以在任意两个类型间进行转换,太过随意和武断,很容易带来一些难以发现的隐患和问题。C++为了向下兼容,保留了这种方式,但新增了四个

    2023年04月08日
    浏览(31)
  • Unity之Addressable使用注意事项

    Profile文件中配置资源构建路径和资源首次加载路径,资源如何设置了缓存,在首次加载之后会将再用缓存在缓存目录,后面将直接从缓存目录中读取,方便项目发包时候进行使用 AddressableAssetSettings文件 DisableCatalogUpdateOnStartup 勾选改选项,禁止自动更新,项目资源下载一般需

    2024年02月08日
    浏览(30)
  • 【Visual Leak Detector】使用注意事项

    使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。本篇介绍使用 VLD 时的注意事项。同系列文章目录可见 《内存泄漏检测工具》目录 目录 说明 1. 官网文档 2. 注意事项 可以在 Using-Visual-Leak-Detector 官方文档里看到如何使用 VLD,里面介绍了如何在 Visual C++ 2003/2005/2008/201

    2023年04月11日
    浏览(30)
  • C++使用类的一些注意事项

    目录 前言: 1.再谈构造函数 2.(c++98)隐式类型转换中的编译器的优化 3.explicit 4.static成员 5.匿名对象 6.友元函数 7.内部类 8.编译器的一些场上的优化 总结: 若有歧义,请指出,感谢阅读! 1.再谈构造函数 我们在构造函数体中,给成员变量赋值能叫做成员变量的初始

    2024年04月10日
    浏览(36)
  • mysql中使用IN的注意事项

    在写sql语句过程中,难免会使用IN条件查询,那你知道使用IN要注意那些事项呢?下面我们就来一列举 使用IN查询是否会使用索引 答:有时会使用,有时就不会使用。当IN 的范围小时会使用索引查询,当IN的范围大的时候,就会全表扫描。 IN和EXISTS那个效率高 答:1、如果查询的

    2024年02月01日
    浏览(32)
  • 相机拍摄3要素及其使用注意事项(全)

    1、原文持续更新中:https://www.cnblogs.com/MrFlySand/p/17897031.html 2、PS修图插件,一键美颜,你知道吗?(戳我),后台回复“230707PS插件”获取相关插件应用,回复“230708PS插件教程”获取教学链接;回复“230730camera快捷键”获取快捷键链接。 感光度(ISO) : 数字越大,感光度越大(对光

    2024年02月03日
    浏览(33)
  • Vue中data变量使用的注意事项

    因为在Vue中,data中的属性往往都是用于双向绑定,所以Vue会对其有劫持,所以我们在对data属性进行操作时,尽量不要对其直接操作,比如下面代码: 最终打印结果如下: 可以看到包含一个Observer属性,这是Vue自动加上的。 上面代码不断向 this.list 中添加数据,这样会造成过

    2024年02月13日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包