typeScript6(其他类型)

1、void

void表示没有任何类型,和其他类型是平等关系,不能直接赋值。我们只能为它赋值null或undefined(在strictNullChecks未指定为true时)。一般只有在函数没有返回值时去声明。

2、never

never类型表示的是那些永不存在的值的类型。

值会永不存在的两种情况:

(1)如果一个函数执行时抛出了异常,那么这个函数永远不存在返回值(因为抛出异常会直接中断程序运行,这使得程序运行不到返回值那一步,即具有不可达的终点,也就永不存在返回了);

(2)函数中执行无限循环的代码(死循环),使得程序永远无法运行到函数返回值那一步,永不存在返回。

注意点:没有类型是never的子类型或可以赋值给never类型(除了never本身之外),即使any也不可以赋值给never

使用 never 避免出现新增了联合类型没有对应的实现,目的就是写出类型绝对安全的代码。

3、symbol

自ECMAScript 2015起,symbol成为了一种新的原生类型,就像numberstring一样。

(1)symbol的值是唯一的

(2)symbol只支持string和number类型的参数

(3)symbol可用作对象属性的键

(4)使用symbol定义的属性,可通过Object.getOwnPropertySymbols()或

Reflect.ownKeys()拿到对象的所有属性

(5)symbol可支持遍历大部分类型迭代器 arr nodeList argumetns set map 等

4、any

在 TypeScript 中,任何类型都可以被归为 any 类型。这让 any 类型成为了类型系统的顶级类型.

变量如果在声明的时候,未指定其类型,那么它会被识别为任意值类型

5、unknown

unknownany一样,所有类型都可以分配给unknown

unknown与any的区别:任何类型的值可以赋值给any,同时any类型的值也可以赋值给任何类型。unknown 任何类型的值都可以赋值给它,但它只能赋值给unknownany

6、Number、String、Boolean、Symbol

原始类型:number、string、boolean、symbol

对象类型(原始类型的包装对象):Number、String、Boolean、Symbol

从类型兼容性上看,原始类型兼容对应的对象类型,反过来对象类型不兼容对应的原始类型。

不要使用对象类型来注解值的类型

7、object、Object和{}

JavaScript 中以下类型被视为原始类型:stringbooleannumberbigintsymbolnull 和 undefined

(1)小object 代表的是所有非原始类型,也就是说我们不能把 number、string、boolean、symbol等 原始类型赋值给 object。在严格模式下,null 和 undefined 类型也不能赋给 object。

(2)大Object 代表所有拥有 toString、hasOwnProperty 方法的类型,所以所有原始类型、非原始类型都可以赋给 Object。同样,在严格模式下,null 和 undefined 类型也不能赋给 Object。

大 Object 包含原始类型,小 object 仅包含非原始类型;大 Object 不仅是小 object 的父类型,同时也是小 object 的子类型。

(3){}空对象类型和大 Object 一样,也是表示原始类型和非原始类型的集合,并且在严格模式下,null 和 undefined 也不能赋给 {}

总结:{}、大 Object 是比小 object 更宽泛的类型(least specific),{} 和大 Object 可以互相代替,用来表示原始类型(null、undefined 除外)和非原始类型;而小 object 则表示非原始类型。

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

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

相关文章

自动化脚本-Excel批量生成二维码

演示: Excel二维码批量生成 exe资源文件: 下载exe 代码实现: pip install openpyxl openpyxl 是一个用于读写 Excel 文件的 Python 库 pip install qrcode qrcode 是一个 Python 库,可以用来生成二维码(Quick Resp…

小目标检测篇 | YOLOv8改进之GSConv + Slim Neck提升小目标检测效果

前言:Hello大家好,我是小哥谈。在文章中,作者提出了一种新方法GSConv来减轻模型的复杂度并保持准确性。GSConv可以更好地平衡模型的准确性和速度。并且,提供了一种设计范式Slim Neck,以实现检测器更高的计算成本效益。实验过程中,与原始网络相比,改进方法获得了最优秀的…

【MySQL】锁

一、并发事务访问相同记录的三种情况 读-读情况   并发事务相继读取相同的记录,不会产生什么问题。 写-写情况   这种情况下会发生脏写的问题。 读-写或写-读情况   会发生脏读、不可重复读、幻读的情况 并发问题的解决方案 读操作利用多版本并发控制&am…

论文翻译 - Defending Against Alignment-Breaking Attacks via Robustly Aligned LLM

论文链接:https://arxiv.org/pdf/2309.14348.pdf Defending Against Alignment-Breaking Attacks via Robustly Aligned LLM Abstract1 Introduction2 Related Works3 Our Proposed Method3.1 Threat Model3.2 Our Proposed Method3.3 Practical Designs3.4 Theoret…

docker centos7在线安装mysql8.x

目录 1. 安装mysql8.x2.配置开机启动3.修改root密码和配置远程访问 1. 安装mysql8.x # 安装MySQL cd /usr/local/mysql # 下载rpm安装包 wget https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm yum -y localinstall mysql80-community-release-el7-3.noarc…

java的ArrayList类

ArrayList<E>E是自定义数据类型 ArrayList类&#xff1a; 构造函数&#xff1a; 成员方法&#xff1a; public boolean add(E e)&#xff1a; 将指定元素加到集合末尾 Appends the specified element to the end of this list. public class Array {public static…

动听的洗牌游戏(Java篇ArrayList实操)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

LeetCode - 存在重复元素

219. 存在重复元素 II 这道题可以用两个方法解决。 哈希表 从左到右遍历数组&#xff0c;并将数组的下标存到hash中&#xff0c;在遍历数字的过程中&#xff0c;如果hash中不存在nums[i]&#xff0c;将nums[i]加入到hash当中&#xff0c;若存在&#xff0c;则判断下标之间的关…

深入理解Elasticsearch高效原理

在当今数据驱动的世界中&#xff0c;能够快速有效地存储、搜索和分析庞大数据集变得至关重要。Elasticsearch是一个强大的开源搜索和分析引擎&#xff0c;专为云计算中心而设计&#xff0c;能够提供快速的搜索功能&#xff0c;并且能够扩展到包含数百个服务器的集群&#xff0c…

Java面试题:请解释Java中的继承和多态?

一、请解释Java中的继承和多态&#xff1f; Java中的继承&#xff08;Inheritance&#xff09;和多态&#xff08;Polymorphism&#xff09;是面向对象编程&#xff08;OOP&#xff09;的两大基本特性&#xff0c;它们允许开发者创建灵活、可扩展的代码。 继承 继承是一种允许…

C#事件实例详解

一、什么是事件&#xff1f; 在C#中,事件(event)是一种特殊的类成员,它允许类或对象通知其他类或对象发生了某些事情。 从语法上看,事件的声明类似于字段,但它们在功能和行为上有一些重要的区别。 从技术角度来说,事件实际上是一个封装了事件订阅和取消订阅功能的委托字段。…

Python中的数据类型有四类八种如何理解?

在Python中&#xff0c;数据类型大致可以分为四大类&#xff0c;包含了八种基本的数据类型&#xff0c;这些分类有助于理解和使用Python进行编程。这四大类分别是&#xff1a; 数字类型 (Numeric Types): 整型 (int): 表示没有小数部分的整数&#xff0c;可以是正数、负数或零。…

ORACLE 知识整理

目录 一. 插入指定数量的数据二. 索引2.1 创建索引2.2 删除索引 三. 查询计划四. Oracle SQLPlus常用设置五. 增加删除字段 一. 插入指定数量的数据 ⏹当需要向表中插入若干测试数据的时候&#xff0c;可通过下面这种方式造数据 先从DUAL虚拟表中检索后造出10000条数据后&…

海外媒体发稿:9种高效的媒体套餐内容发稿策略分析-华媒舍

海外媒体发稿&#xff1a;9种高效的媒体套餐内容发稿策略分析高效的媒体发布和营销推广策略对公司、本人的成就尤为重要。下面我们就对于媒体套餐内容发稿营销推广策略开展全面解析&#xff0c;帮助读者掌握并应用这9种合理的思路&#xff0c;进而获得更好的媒体营销效果。 1.媒…

Retelling|Facebook2

录音 Facebook 2 Retelling|Facebook2 复述转写 Hi, Im Helen Campbell, from DJ interpretation, European Commission, Im going to talk about Facebook. You Im sure that you are more familiar with Facebook, a lot, a lot more familiar than I than me. But Ive read…

unity pivot和center的区别

在Unity中&#xff0c;“pivot” 和 “center” 是两个在物体变换和编辑过程中经常提到的概念&#xff0c;它们表示物体的不同位置或者参考点。下面是它们的区别&#xff1a; Pivot&#xff08;中心点&#xff09;&#xff1a; Pivot 是物体的旋转和缩放的参考点。在 Unity 中&…

__init__.py 的作用

在 Python 中&#xff0c;包含一个名为 __ init __.py 的文件的目录被称为一个包&#xff08;package&#xff09;。 __ init __.py 文件的作用有以下几点&#xff1a; 指示包含该文件的目录是一个 Python 包&#xff1a;当 Python 导入一个包时&#xff0c;会查找该包所在目录…

C语言例4-19:求一元二次方程的解

求一元二次方程的解。 代码如下&#xff1a; //求一元二次方程的解 #include<stdio.h> #include<math.h> int main(void) {float a,b,c,d,x1,x2,p,q;printf("a,b,c?\n");scanf("%f,%f,%f",&a,&b,&c);printf("方程 ");…

智能楼宇3D可视化解决方案

什么是智能楼宇? 智能楼宇是为提高楼宇的使用合理性与效率,配置合适的建筑环境系统与楼宇自动化系统、办公自动化与管理信息系统以及先进的通信系统,并通过结构化综合布线系统集成为智能化系统的大楼。 面临的问题 信息孤岛,无法统一管理 各个子系统独立工作、独立管理,…

python练习4

求一个十进制的数值的二进制的0、1的个数 def binary(num):binary_num bin(num)ls list(str(binary_num))[2:]count_0 0count_1 0for i in ls:if int(i) 0:count_0 1else:count_1 1return count_0,count_1num int(input(请输入一个整数&#xff1a;)) print(f将{num}转…