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 则表示非原始类型。

  • 18
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值