TypeScript11:类型兼容性

news2024/11/15 4:18:40

类型的兼容性 

B -> A,将 B 赋值给 A ,如果能完成赋值,则 B 和 A 类型兼容。

鸭子辨型法(子结构辨型法):

目标类型需要某一些特征,赋值的类型只要能满足该特征即可。

TS如何进行类型兼容: 

  • 基本类型:完全匹配。
  • 对象类型:鸭子辨型法。

类型断言:编译结果中没有类型断言。

interface Duck { 
  sound: "嘎嘎嘎";
  swin(): void;
}

let person = {
  name: "伪装成鸭子的人",
  age: 11,
  sound: "嘎嘎嘎" as "嘎嘎嘎", // 类型断言:前边是数据,as是断言,后边是类型
  swin() { 
    console.log(this.name + "正在游泳,并发出了" + this.sound + "的声音");
  }
}

let duck: Duck = person;

当直接使用对象字面量赋值的时候,会进行更加严格的判断。因此,将对象直接赋值给 duck 时会出现以下报错:

函数类型:

  1. 参数: 传递的给目标函数的参数可以少,但不可以多。
  2. 返回值:要求返回必须返回,类型必须匹配。不要求返回时,随意。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1487379.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SINAMICS V90 PN 指导手册 第7章 位置跟踪

位置跟踪 位置跟踪的主要作用有以下几点: 为单圈绝对值编码器设置一个虚拟多圈扩展位置区域使用齿轮箱时编码器可以重复负载位置 当位置跟踪功能使能后,那么实际位置值在驱动断电时会保存在驱动的掉电存储区中。当驱动器重新上电后,驱动可…

【计算机考研】408学到什么程度才能考130?

408考130要比考研数学考130难的多 我想大部分考过408的考生都是这么认为的。408的难点在于他涉及的范围太广了,首先如果你要备考408,你要准备四门课程,分别是数据结构,计算机组成原理,操作系统和计算机网络。 这四门…

RabbitMQ队列

RabbitMQ队列 1、死信的概念 ​ 先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer将消息投递到broker或者直接到queue里了,consumer 从 queue取出消息进行消…

模型部署 - BevFusion - (1) - 思路总结

模型部署实践 - BevFusion 思路总结一、网络结构 - 总结1.1、代码1.2、网络流程图1.3、模块大致梳理 二、Onnx 的导出 -总体思路分析三、优化思路总结 学习 BevFusion 的部署,看了很多的资料,这篇博客进行总结和记录自己的实践 思路总结 对于一个模型我…

如何限制一个账号只在一处登陆

大家好,我是广漂程序员DevinRock! 1. 需求分析 前阵子,和问答群里一个前端朋友,随便唠了唠。期间他问了我一个问题,让我印象深刻。 他问的是,限制同一账号只能在一处设备上登录,是如何实现的…

【Java项目介绍和界面搭建】拼图小游戏——美化界面

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏 …

AI企业发力智慧物流 HEGERLS四向车开启新一代托盘柔性物流解决方案

不论自动仓储、智能仓储,解决方案都需要更加平民化,普惠更多企业。柔性灵活、易于部署和扩展、初期投入成本低的方案一定是其中的重点。要实现这些特点,最重要的是硬件要做到标准化、软件要模块化,让仓储设备可以即插即用。凭借柔…

三维可视化技术在设备管理系统中的应用

随着科技的进步,传统的设备管理方法已经不能满足现代企业的需求。为了更高效地管理资产,设备管理系统开始采用三维可视化动态技术。这种技术不仅能够帮助用户快速找到相应的设备,还能够展示设备的现场位置、所处环境、关联设备以及设备参数等…

密钥加密机的工作原理

密钥加密机是信息安全领域中不可或缺的核心设备,它承担着保护通信内容、确保数据完整性以及验证信息发送方身份等重要任务。随着信息技术的迅猛发展,密钥加密机的作用愈发凸显,其安全性和可靠性直接关系到国家安全、商业机密和个人隐私等多个…

Ubuntu20安装zabbix-agent2,对接zabbix 6.4

在Ubuntu 20.04 LTS上安装Zabbix Agent 2并与Zabbix Server 6.4对接,请按照以下步骤操作: 更新系统: sudo apt update sudo apt upgrade 添加Zabbix官方仓库: 首先,需要将Zabbix的官方存储库添加到你的系统中以获取Za…

U盘无法读取?轻松掌握正确解决方法!

“为什么我的u盘插入电脑后会显示无法读取呢?想查看一些比较重要的文件,但就是无法读取U盘,想问问大家,我应该怎么操作呢?” U盘作为一种便捷的数据存储设备,广泛应用于我们的日常生活和工作中。然而&#…

探索前景:机器学习中常见优化算法的比较分析

目录 一、介绍 二、技术背景 三、相关代码 四、结论 一、介绍 优化算法在机器学习和深度学习中至关重要,可以最小化损失函数,从而改善模型的预测。每个优化器都有其独特的方法来导航损失函数的复杂环境以找到最小值。本文探讨了一些最常见的优化算法&…

程序员如何选择职业赛道?

程序员选择职业赛道就像是在一个充满挑战和机遇的迷宫中探索。不同的职业赛道代表着不同的路径,每条路径都有其独特的风景和挑战。我愿意为大家提供一些关于如何选择职业赛道的建议。本文将分为几个部分,包括了解自己、了解行业、职业规划、技能提升和持…

阿里云服务器4核8G配置多少钱?来看看,不看白不看!

阿里云服务器4核8g配置多少钱一年?1个月费用多少?云服务器u1实例3折优惠价955.58元一年,计算型c7云服务器4核8G价格2944.79元一年。4核8G服务器按月购买比较贵,经济型e实例4核8G配置1个月216元,通用算力型u1服务器336.…

自动化构建平台(四)Linux搭建私有CI/CD工具之Jenkins的安装

文章目录 前言一、Jenkins本地安装1、使用war文件安装2、使用yum或者app-get安装 二、docker安装Jenkins三、Jenkins登录、配置操作总结 前言 在CD领域,Jenkins应该是元老级别的存在,很多现代的devs平台多少都能看到Jenkins的影子,但是Jenki…

Nucleic Acids Research | scATAC-seq+CUTTag探究关键转录因子对视网膜细胞分化的调控作用

在中枢神经系统发育过程中,多能神经祖细胞如何产生不同的神经细胞类型仍然知之甚少。最近的scRNA-seq研究已经描绘了包括神经视网膜在内的许多神经系统中单个神经细胞类型的发育轨迹。进一步了解神经细胞多样性的形成需要了解表观遗传景观如何沿着个体细胞谱系变化以…

Java中继承的作用及解析

在 Java 中,继承是一种非常重要的面向对象编程特性。它的主要作用包括以下几个方面: 代码复用:通过继承,子类可以复用父类的代码,包括属性和方法。这样可以避免重复编写相同的代码,提高代码的复用性和可维护…

Qt/C++音视频开发67-保存裸流加入sps/pps信息/支持264/265裸流/转码保存/拉流推流

一、前言 音视频组件除了支持保存MP4文件外,同时还支持保存裸流即264/265文件,以及解码后最原始的yuv文件。在实际使用过程中,会发现部分视频文件保存的裸流文件,并不能直接用播放器播放,查阅资料得知原来是缺少sps/p…

开源问答平台网站源码系统 带完整的搭建教程

互联网的快速发展,用户对于信息的需求日益增长。问答平台以其独特的形式,让用户能够快速地找到答案、分享经验和交流想法。然而,市场上的问答平台大多数都是封闭的,不仅限制了用户的自由度和参与度,也增加了开发者和运…

C 嵌入式系统设计模式 19:保护调用模式

本书的原著为:《Design Patterns for Embedded Systems in C ——An Embedded Software Engineering Toolkit 》,讲解的是嵌入式系统设计模式,是一本不可多得的好书。 本系列描述我对书中内容的理解。本文章描述嵌入式并发和资源管理模式之五…