TypeScript(TS)中的类型介绍

TS的类型

在 TypeScript 中,主要有以下几种类型:

基础类型(Primitive Types)

  • number:数值类型,支持整数和浮点数。
  • string:字符串类型,表示文本。
  • boolean:布尔类型,只有 truefalse 两个值。
  • null:表示空值或无值。
  • undefined:表示未定义,通常表示变量已声明但未赋值。
  • symbol:表示独一无二的值,通常用于对象属性的唯一标识。

对象类型(Object Types)

  • Object:表示所有非原始类型的值。
  • 数组:如 number[]Array<number>,表示数值数组。
  • 元组:如 [string, number],表示具有固定数量和固定类型的数组。
  • 枚举enum):表示一组命名的常量,如 enum Color { Red, Green, Blue }
  • 接口interface):用于描述对象的结构,可以定义属性和方法。
  • 类型别名type):可以用于定义基本类型、对象类型、联合类型等的别名。

联合类型(Union Types)

  • 表示一个值可以是多个类型中的一种,如 string | number

交叉类型(Intersection Types)

  • 表示一个类型是多个类型的组合,如 type A = {name: string} & {age: number}

任何类型(any)

  • 表示任意类型,可以赋值为任何类型的变量,但会失去类型检查的好处。

未知类型(unknown)

  • 表示未知类型,类型检查更严格,必须进行类型检查后才能使用。

void 类型

  • 通常用于表示没有返回值的函数的返回类型。

never 类型

  • 表示永远不会有值的类型,比如抛出异常的函数。

JS的类型

在 JavaScript 中,主要有以下几种数据类型:

基本数据类型(Primitive Types)

  • number:数值类型,包括整数和浮点数。
  • string:字符串类型,用于表示文本。
  • boolean:布尔类型,表示逻辑值 truefalse
  • undefined:表示变量已声明但未赋值。
  • null:表示空值或无值,通常用于显式地表示“无”。
  • symbol(ES6 引入):表示独一无二的值,主要用于对象属性的唯一标识。
  • bigint(ES11 引入):表示任意精度的整数,适用于大于 Number.MAX_SAFE_INTEGER 的整数值。

对象类型(Object Types)

object:用于表示各种复杂的数据结构,如对象字面量、数组、函数、日期等。

  • 数组(Array):用于存储有序的元素集合,如 [1, 2, 3]
  • 函数(Function):可以被调用的对象,用于执行代码块。
  • 日期(Date):表示日期和时间的对象。
  • 正则表达式(RegExp):用于匹配字符串模式的对象。

JavaScript 的数据类型可以分为原始类型(基本类型)和引用类型(对象类型)。原始类型是不可变的,而对象类型是可变的。基本数据类型在内存中存储的是值本身,而对象类型在内存中存储的是对实际数据的引用。

类型判断

https://www.psvmc.cn/article/2018-12-20-js-type.html