TypeScript速查表

TypeScript语法速查表,涵盖基础类型、接口、泛型、类型守卫、工具类型、装饰器等核心语法参考。

📝 基础类型

类型说明
string字符串类型
number数字类型(整数和浮点数)
boolean布尔类型(true/false)
Array<T> / T[]数组类型
[T1, T2, ...]元组类型,固定长度和类型的数组
enum枚举类型,用于定义命名常量集合
any任意类型,关闭类型检查(不推荐)
unknown未知类型,安全的any(使用前需类型断言)
void无返回值类型,常用于函数
never永不返回类型,用于抛出异常或无限循环
null / undefined空值和未定义类型
object非原始类型对象
symbol唯一标识符类型
bigint大整数类型

🔗 接口与类型

语法说明
interface User { name: string }定义接口
type User = { name: string }定义类型别名
name?: string可选属性
readonly id: number只读属性,不可修改
[key: string]: any索引签名,允许任意属性
interface B extends A接口继承
type C = A & B交叉类型,合并多个类型
type Status = "active" | "inactive"字符串字面量联合类型
type Pair = [string, number]类型别名定义元组

🔄 泛型

语法说明
function id<T>(arg: T): T泛型函数
const id = <T,>(arg: T): T => arg箭头函数泛型写法
class Box<T> { value: T }泛型类
<T extends HasLen>泛型约束,限制类型参数范围
<T = string>泛型默认值
interface Repo<T> { get(): T }泛型接口
type Result<T, E = Error>泛型类型别名(带默认参数)
keyof T获取类型T的所有键的联合类型

🏗️ 类与面向对象

语法说明
class Person { name: string }定义类
implements Interface实现接口
extends BaseClass继承父类
abstract class Shape抽象类,不能直接实例化
abstract area(): number抽象方法,子类必须实现
public name公共属性(默认)
private id私有属性,仅类内部可访问
protected data受保护属性,子类可访问
readonly created: Date只读属性,构造后不可修改
static count静态属性,属于类本身
constructor(private name: string)参数属性简写,自动声明并赋值

🛡️ 类型守卫

语法说明
typeof x === "string"typeof类型守卫
x instanceof Dateinstanceof类型守卫
"name" in objin操作符类型守卫
function isStr(x: unknown): x is string自定义类型守卫函数
asserts x is string断言函数,不返回值但缩窄类型
x as string类型断言(强制指定类型)
<string>x类型断言尖括号语法(JSX中不可用)

🧰 工具类型

类型说明
Partial<T>将T所有属性变为可选
Required<T>将T所有属性变为必选
Pick<T, K>从T中选取指定属性组成新类型
Omit<T, K>从T中排除指定属性组成新类型
Record<K, V>构造键为K、值为V的对象类型
Readonly<T>将T所有属性变为只读
Exclude<T, U>从联合类型T中排除可赋值给U的类型
Extract<T, U>从联合类型T中提取可赋值给U的类型
Infer<T>在条件类型中推断类型
NonNullable<T>从T中排除null和undefined
ReturnType<T>获取函数类型T的返回类型
Parameters<T>获取函数类型T的参数类型元组

🎯 高级类型

语法说明
A | B联合类型,A或B之一
A & B交叉类型,同时满足A和B
T extends U ? X : Y条件类型
{ [K in keyof T]: V }映射类型,遍历T的属性生成新类型
`${A}_${B}`模板字面量类型
as const将字面量推断为最窄类型
type Unpacked<T> = T extends (infer U)[] ? U : T使用infer进行类型推断
type DeepPartial<T>深度递归Partial(需递归类型定义)

✨ 装饰器

类型说明
@Component({...})类装饰器,用于修饰类
@Log方法装饰器,用于修饰方法
@Validate属性装饰器,用于修饰属性
@Param("id")参数装饰器,用于修饰方法参数
@sealed装饰器工厂,返回装饰器的函数
experimentalDecorators: truetsconfig.json中启用装饰器支持
emitDecoratorMetadata: true启用装饰器元数据反射

关于TypeScript

TypeScript是JavaScript的超集,通过静态类型系统提高了代码的可维护性和可读性。掌握这些类型系统特性可以帮助你编写更安全、更健壮的代码。建议结合VS Code获得最佳开发体验。