TypeScript 标准库:全面概述

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

TypeScript 标准库:全面概述



TypeScript 不仅仅是 JavaScript 的超集,添加了静态类型检查。该语言还附带了一个强大的标准库,扩展了开发者的能力。在本文中,我们将详细解析 TypeScript 标准库的关键组件,展示使用示例,并解释它们如何简化开发。



1. 内置数据类型



TypeScript 标准库包含了所有 JavaScript 的基本类型,并为其添加了严格的类型检查和新的抽象:



  • number、string、boolean — 原始类型;
  • null 和 undefined — 特殊值;
  • any — 禁用类型检查;
  • unknown — any 的安全替代方案;
  • never — 用于永远不会返回的函数的类型;
  • void — 无返回值。


// 内置类型使用示例let age: number = 25;let name: string = "安娜";let isActive: boolean = true;let data: unknown = { id: 1 };let error: never = (() => { throw new Error("错误"); })();


2. 工具类型 (Utility Types)



TypeScript 提供了一组内置的工具类型,允许您转换现有类型,而无需编写复杂的结构:



  • Partial<T> — 使类型 T 的所有字段变为可选;
  • Required<T> — 使所有字段变为必填;
  • Readonly<T> — 禁止修改字段;
  • Pick<T, K> — 从类型中选取指定的键;
  • Omit<T, K> — 从类型中排除指定的键;
  • Record<K, T> — 创建一个键为 K、值为 T 的类型。


interface User {  id: number;  name: string;  email: string;}

// 使所有字段变为可选type PartialUser = Partial<User>;

// 仅选取 id 和 nametype UserPreview = Pick<User, "id" | "name">;

// 创建一个字典type UserMap = Record<string, User>;


3. 集合操作:Map, Set, WeakMap, WeakSet



标准库包含了 ES6+ 集合的类型化版本。TypeScript 在使用这些结构时会自动推断类型:



  • Map<K, V> — 键值对集合;
  • Set<T> — 唯一值集合;
  • WeakMap<K extends object, V> — 具有“弱”引用的 Map 类似物;
  • WeakSet<T extends object> — 用于对象的 Set 类似物。


// 类型化的 Mapconst userRoles = new Map<number, string>();userRoles.set(1, "admin");userRoles.set(2, "user");

// 类型化的 Setconst uniqueIds = new Set<number>([1, 2, 3, 3]); // {1, 2, 3}


4. Promise 与异步编程



TypeScript 通过 Promise<T> 和 async/await 关键字完全支持异步编程。Promise 的类型化允许精确指定返回的数据类型:



async function fetchUser(id: number): Promise<User> {  const response = await fetch(`/api/users/${id}`);  return response.json(); // 返回值的类型为 User}

// 使用fetchUser(1).then(user => { console.log(user.name); // name 是字符串});


5. DOM 与浏览器 API 操作



TypeScript 标准库包含了 DOM API 的完整类型定义。这使得可以安全地操作元素、事件和其他浏览器对象:



推荐