TypeScript笔记
TS学习笔记
JS基本数据类型
类型 | 示例 | 说明 |
---|---|---|
number | 42 , 3.14 , NaN | 数字(整数、浮点数、NaN |
string | "hello" , 'world' | 字符串(单/双引号或反引号) |
boolean | true , false | 布尔值 |
null | null | 表示“空值”(需手动赋值) |
undefined | undefined | 变量未定义时的默认值 |
symbol | Symbol('id') | ES6 新增,表示唯一值 |
bigint | 123n | ES2020 新增,表示大整数 |
JS引用数据类型
类型 | 示例 | 说明 |
---|---|---|
object | { name: "Alice" } | 普通对象 |
array | [1, 2, 3] | 数组(本质是特殊对象) |
function | function() {} | 函数(可调用对象) |
date | new Date() | 日期对象 |
regexp | /abc/ | 正则表达式对象 |
其他内置对象 | Map , Set 等 | ES6+ 新增数据结构 |
TS数据类型增强
类型 | 示例 | 说明 |
---|---|---|
元组 (Tuple) | let x: [string, number] = ["a", 1] | 固定长度和类型的数组 |
枚举 (Enum) | enum Color { Red, Green } let c: Color = Color.Red | 定义命名常量集合 |
void | function fn(): void { console.log(1) } | 表示函数没有返回值 |
never | function error(): never { throw Error() } | 表示永不返回的函数 |
any | let x: any = "hello" x = 123 | 禁用类型检查 |
unknown | let 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 {...} | 创建可复用的类型组件 |
Record | type R = Record<string, number> | 定义键值对类型 |
Partial | type P = Partial<User> | 使所有属性变为可选 |
Readonly | type 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 //成立