Skip to content

TypeScript笔记

TS学习笔记

JS基本数据类型

类型示例说明
number42, 3.14, NaN数字(整数、浮点数、NaN
string"hello", 'world'字符串(单/双引号或反引号)
booleantrue, false布尔值
nullnull表示“空值”(需手动赋值)
undefinedundefined变量未定义时的默认值
symbolSymbol('id')ES6 新增,表示唯一值
bigint123nES2020 新增,表示大整数

JS引用数据类型

类型示例说明
object{ name: "Alice" }普通对象
array[1, 2, 3]数组(本质是特殊对象)
functionfunction() {}函数(可调用对象)
datenew Date()日期对象
regexp/abc/正则表达式对象
其他内置对象Map, SetES6+ 新增数据结构

TS数据类型增强

类型示例说明
元组 (Tuple)let x: [string, number] = ["a", 1]固定长度和类型的数组
枚举 (Enum)enum Color { Red, Green } let c: Color = Color.Red定义命名常量集合
voidfunction fn(): void { console.log(1) }表示函数没有返回值
neverfunction error(): never { throw Error() }表示永不返回的函数
anylet x: any = "hello" x = 123禁用类型检查
unknownlet x: unknown = "hello" if(typeof x === "string"){...}类型安全的any,需先检查
联合类型let id: string | number允许变量为多种类型之一
交叉类型type A = { name: string } type B = { age: number } type C = A & B合并多个类型
字面量类型let dir: "left" | "right"限制变量为特定值
类型别名type Point = { x: number, y: number }为复杂类型创建别名
接口interface User { name: string }定义对象结构(可扩展)
泛型function identity<T>(arg: T): T {...}创建可复用的类型组件
Recordtype R = Record<string, number>定义键值对类型
Partialtype P = Partial<User>使所有属性变为可选
Readonlytype RO = Readonly<User>使所有属性变为只读

常用类型

  • any
  • unknow
  • never
  • void
  • object
  • tuple
  • enum

any

可以任意赋值

ts
let a : any

a = 'test'
a = 123

any类型可以赋给任意类型的变量

ts
let a : any
let b : string

a = 123
b = a //成立