TypeScript 标准库:完整概述
TypeScript 是 JavaScript 的严格类型化超集,它为大型应用程序开发添加了静态类型化和强大的工具。与许多语言不同,TypeScript 在经典意义上没有庞大的内置标准库(例如 Java 或 Python)。相反,它提供了一组内置类型、类型工具、装饰器和编译器工具。在本文中,我们将详细分析 TypeScript 标准库的所有关键组件。
1. 内置数据类型
TypeScript 包含所有 JavaScript 原始类型,并添加了自己的类型:
boolean— 布尔类型number— 数字(整数和浮点数)string— 字符串null和undefined— 特殊值symbol— 唯一标识符bigint— 大整数any— 禁用类型检查unknown— any 的安全替代方案never— 用于永远不会结束的函数类型void— 无返回值
内置类型使用示例:
let isDone: boolean = false;let decimal: number = 42;let color: string = "синий";let notSure: unknown = 4;notSure = "теперь строка"; // 允许
function error(message: string): never { throw new Error(message);}2. 工具类型 (Utility Types)
TypeScript 提供了强大的内置工具用于类型转换。以下是最有用的几个:
- Partial<T> — 使 T 类型的所有字段变为可选
- Required<T> — 使所有字段变为必填
- Readonly<T> — 使所有字段变为只读
- Pick<T, K> — 从类型中选择指定的键
- Omit<T, K> — 排除指定的键
- Record<K, T> — 创建键为 K、值为 T 的对象类型
- Exclude<T, U> — 排除存在于 U 中的类型
- ReturnType<T> — 提取函数的返回值类型
工具类型使用示例:
interface User { id: number; name: string; email: string;}
// 部分更新用户function updateUser(id: number, changes: Partial<User>): void { // 更新逻辑}
// 只读const readonlyUser: Readonly<User> = { id: 1, name: "Иван", email: "ivan@example.com"};
// 选择字段type UserName = Pick<User, "name" | "email">;3. 装饰器
装饰器是一种特殊的声明,允许修改类、方法、属性和参数。TypeScript 支持多种类型的装饰器:
- 类装饰器 — 应用于类的构造函数
- 方法装饰器 — 应用于类的方法
- 属性装饰器 — 应用于属性
- 参数装饰器 — 应用于方法的参数
用于日志记录的方法装饰器示例:
function log(target: any, propertyKey: string, descriptor: PropertyDescriptor) { const originalMethod = descriptor.value; descriptor.value = function (...args: any[]) { console.log(`Вызов ${propertyKey} с аргументами: ${JSON.stringify(args)}`); return originalMethod.apply(th