15 # 类型检查机制:类型推断

类型检查机制

类型检查机制:TypeScript 编译器在做类型检查时,所秉承的一些原则,以及表现出的一些行为。

作用:辅助开发,提高开发效率。

  • 类型推断
  • 类型兼容性
  • 类型保护

类型推断

不需要指定变量的类型(函数的返回值类型),TypeScript 可以根据某些规则自动为其推断出一个类型。

  • 基础类型推断
  • 最佳通用类型推断:当需要从多个类型中推断出一个类型的时候,ts 会尽可能的推断出一个兼容当前所有类型的通用类型
  • 上下文类型推断
// 基础类型推断
// 1) 初始化变量的时候
let a = 1;
let b = [1]// 2) 设置函数默认参数的时候,还有就是确定返回值的时候
let c1 = (x = 1) => {};
let c2 = (x = 1) => x + 1;// 最佳通用类型推断
let b = [1null]// 上下文类型推断:通常发生在事件类型中
// 根据左侧的事件绑定,推断出右侧的KeyboardEvent类型
window.onkeydown = (event) => {// console.log(event.button) // button 是鼠标事件的属性,不是键盘的,这里会报错
}// 类型断言:可以增加代码的灵活性,但不能滥用
interface Foo {bar: number
}let foo = {} as Foo;foo.bar = 1;

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

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

相关文章

初识node.js(使用)

文章目录 项目目录介绍和运行流程1.index.html&#x1f447;2.整个项目的核心入口文件其实是main.js3.App.vue 组件化开发 和 根组件普通组件的注册1.局部注册2.全局注册 综合案例 项目目录介绍和运行流程 1.index.html&#x1f447; <!DOCTYPE html> <html lang&quo…

Android 13.0 去掉音量键电源键组合键的屏幕截图功能

1.概述 在13.0的产品rom定制化开发中,系统默认可以通过音量键和电源键来截图的,但是产品不需要截图功能,所以要求去掉音量和电源键的截图功能,所以要分析组合键截图功能屏蔽掉就好了 2.去掉音量键电源键组合键的屏幕截图功能的核心代码 frameworks/base/services/core/j…

Kafka集群的安装与配置(二)

2.2.2 生产者命令行操作 1 &#xff09;查看操作生产者命令参数 [atguiguhadoop102 kafka]$ bin/ kafka-console-producer.sh 2 &#xff09;发送消息 [atguiguhadoop102 kafka]$ bin/kafka-console-producer.sh --bootstrap-server hadoop102:9092 --topic first >h…

宠物互联网医院系统

在数字时代&#xff0c;宠物医疗迎来了一场革新&#xff0c;动物互联网医院系统以其先进的技术和智能的特性成为宠物护理的领军者。本文将介绍宠物互联网医院系统的一些关键技术和代码示例&#xff0c;揭示这一科技奇迹的实现原理。 1. 远程医疗服务的实现 远程医疗服务是宠…

国标GB28181协议EasyCVR启动失败报错“Local Machine Check Error”的解决方法

国标GB28181安防监控系统EasyCVR平台采用了开放式的网络结构&#xff0c;可支持4G、5G、WiFi、有线等方式进行视频的接入与传输、处理和分发。安防视频监控平台EasyCVR还能支持GIS电子地图模式&#xff0c;基于监控摄像头的经纬度地理位置信息&#xff0c;将场景中的整体安防布…

当pytest遇上poium会擦出什么火花

当pytest遇上poium会擦出什么火花 首先&#xff0c;创建一个test_sample/test_demo.py 文件&#xff0c;写入下面三行代码。 def test_bing(page):page.get("https://www.bing.com")assert page.get_title "必应"不要问题 page 从哪里来&#xff0c;打开…

什么是lustre文件系统

参考&#xff1a; https://blog.csdn.net/weixin_43912621/article/details/134215133 Lustre架构是用于集群的存储架构。Lustre架构的核心组件是Lustre文件系统&#xff0c;它在Linux操作系统上得到支持&#xff0c;并提供了一个符合POSIX *标准的UNIX文件系统接口。 Lustre…

浅谈DNS的工作原理及其作用

DNS&#xff0c;全称为Domain Name System&#xff0c;即域名系统&#xff0c;是一种用于将域名和IP地址相互映射的分布式数据库系统。它将可读的域名转换为对应的IP地址&#xff0c;使得用户可以更方便地通过域名来访问网络上的资源。今天锐成就简单探讨一下DNS的工作原理及其…

Hudi0.14.0 集成 Spark3.2.3(IDEA编码方式)

本次在IDEA下使用Scala语言进行开发,具体环境搭建查看文章 IDEA 下 Scala Maven 开发环境搭建。 1 环境准备 1.1 添加maven依赖 创建Maven工程,pom文件: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apa…

数据采集与预处理02 :网络爬虫实战

数据采集与预处理02 &#xff1a;网络爬虫实战 爬虫基本知识 1 HTTP的理解 URL uniform resource locator. 是统一资源定位符&#xff0c;URI identifier是统一资源标识符。几乎所有的URI都是URL。 URL前部一般可以看到是HTTP还是HTTPS&#xff0c; 这是访问资源需要的协议…

Kafka-服务端-KafkaController

Broker能够处理来自KafkaController的LeaderAndIsrRequest、StopReplicaRequest、UpdateMetadataRequest等请求。 在Kafka集群的多个Broker中&#xff0c;有一个Broker会被选举为Controller Leader,负责管理整个集群中所有的分区和副本的状态。 例如&#xff1a;当某分区的Le…

使用Electron打包vue文件变成exe应用程序

文章目录 一、下载Electron二、修改下载的Electron项目1.修改index.html文件2.修改main.js文件3.修改package.json文件 三、修改vue项目1.修改vite.config.js文件2.修改.env.production文件3.修改auth.js文件4.修改router下得index.js文件6.修改Navbar.vue文件 四、Electron打包…

数据结构:3_栈和队列

栈和队列 一.栈 1. 栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。**进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。**栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#x…

模型部署flask学习篇(一)---- flask初始及创建登录页面

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Flask快速使用二、快速使用flask三、创建登录页面 前言 在学习机器学习或者深度学习后&#xff0c;我们常常会将自己训练好的模型来进行部署或者可视化出来…

粒子类特效SDK,电影级的逼真特效

美摄科技&#xff0c;作为技术创新的先驱&#xff0c;开发了一款独特的粒子类特效SDK&#xff0c;为专业内容创作者提供了一种全新的工具&#xff0c;以实现电影级的逼真特效。 一、技术背景与挑战 随着移动设备的普及和性能的提升&#xff0c;越来越多的视觉内容在移动端呈现…

MSP430仿真器使用常见问题

一、 主要是驱动安装问题 有用户反应驱动安装不上&#xff0c;按照用户手册操作一直不能安装成功。 可以尝试如下步骤进行安装。 1. 双击设备管理器中无法安装或者提示有错误的430仿真器设备 选择驱动程序——更新驱动程序 选择手动安装 选择从电脑设备驱动列表中安装 弹出下…

C++从零开始的打怪升级之路(day19)

这是关于一个普通双非本科大一学生的C的学习记录贴 在此前&#xff0c;我学了一点点C语言还有简单的数据结构&#xff0c;如果有小伙伴想和我一起学习的&#xff0c;可以私信我交流分享学习资料 那么开启正题 今天分享的是关于vector的题目 1.只出现一次的数字2 137. 只出…

春节要来了,可是电视家却走了,没有春晚看了

春节马上就要到来&#xff0c;可是随着时代越来越进步&#xff0c;年味也越来越淡了&#xff0c;尤其在海外&#xff0c;更没有国内的气氛浓郁&#xff0c;所以只有每年看春晚才会让我感觉到今天又是新的一年了。 而且长大后会发现更有年味的不是新年&#xff0c;而是新年前…

SpringBoot里MyBatis - SQL执行过程

在SpringBoot整合MyBatis的环境中&#xff0c;执行SQL的过程可以分为以下几个步骤&#xff1a; 配置数据源&#xff08;DataSource&#xff09;&#xff1a; SpringBoot通过application.properties或application.yml配置数据库连接信息&#xff0c;创建并配置DataSource。 配…

【面试突击】生产环境面试实战

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术的推送&#xff01; 在我后台回复…