TS的类型
在 TypeScript 中,主要有以下几种类型:
基础类型(Primitive Types):
number
:数值类型,支持整数和浮点数。string
:字符串类型,表示文本。boolean
:布尔类型,只有true
和false
两个值。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
:布尔类型,表示逻辑值true
或false
。undefined
:表示变量已声明但未赋值。null
:表示空值或无值,通常用于显式地表示“无”。symbol
(ES6 引入):表示独一无二的值,主要用于对象属性的唯一标识。bigint
(ES11 引入):表示任意精度的整数,适用于大于Number.MAX_SAFE_INTEGER
的整数值。
对象类型(Object Types):
object
:用于表示各种复杂的数据结构,如对象字面量、数组、函数、日期等。
- 数组(Array):用于存储有序的元素集合,如
[1, 2, 3]
。 - 函数(Function):可以被调用的对象,用于执行代码块。
- 日期(Date):表示日期和时间的对象。
- 正则表达式(RegExp):用于匹配字符串模式的对象。
JavaScript 的数据类型可以分为原始类型(基本类型)和引用类型(对象类型)。原始类型是不可变的,而对象类型是可变的。基本数据类型在内存中存储的是值本身,而对象类型在内存中存储的是对实际数据的引用。
类型判断