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

相关推荐

  1. typeScript6其他类型

    2024-03-28 04:24:01       44 阅读
  2. TypeScript系列」TypeScript 基础类型

    2024-03-28 04:24:01       33 阅读
  3. TypeScript类型推断

    2024-03-28 04:24:01       43 阅读
  4. TypeScript 数据类型

    2024-03-28 04:24:01       38 阅读
  5. typeScript3(数组类型

    2024-03-28 04:24:01       39 阅读
  6. TypeScript-数组、函数类型

    2024-03-28 04:24:01       33 阅读
  7. 11. TypeScript 函数类型

    2024-03-28 04:24:01       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-28 04:24:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-28 04:24:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-28 04:24:01       87 阅读
  4. Python语言-面向对象

    2024-03-28 04:24:01       96 阅读

热门阅读

  1. git的实际应用场景

    2024-03-28 04:24:01       38 阅读
  2. Docker的常用命令

    2024-03-28 04:24:01       38 阅读
  3. 数据分析---SQL基础

    2024-03-28 04:24:01       39 阅读
  4. 失业我们要直面恐惧乐观应对,早做准备和计划

    2024-03-28 04:24:01       41 阅读
  5. SSRF漏洞

    2024-03-28 04:24:01       39 阅读
  6. FAST-LIO2代码解析(一)

    2024-03-28 04:24:01       49 阅读
  7. codeforces - 1703 - D - Double String (字符串)

    2024-03-28 04:24:01       40 阅读
  8. 2024年通信安全员考试真题题库

    2024-03-28 04:24:01       41 阅读
  9. vs code

    vs code

    2024-03-28 04:24:01      49 阅读
  10. Android中的有序广播与无序广播

    2024-03-28 04:24:01       47 阅读
  11. 基于STM32的智能书房系统的设计

    2024-03-28 04:24:01       32 阅读