← [ BACK_TO_NOTES ]

TypeScript 中的 lib

说明 lib 如何决定 TypeScript 默认提供哪些内建 API 类型定义,以及为什么 Node 项目经常要关心 DOM 类型是否被引入。

#dev #typescript #concept #growing

[!info] related notes

TypeScript 中的 lib

一句话定义

lib 用来决定 TypeScript 默认把哪些 JavaScript / 平台 API 的类型定义加入当前项目。

核心机制 / 工作原理

TypeScript 不只理解语法,还会预置一批标准库类型。

例如:

  • Math
  • Map
  • Promise
  • document
  • window

这些是否存在、以什么类型存在,和 lib 直接相关。

官方文档说明:

  • TypeScript 会根据 target 默认带上一组 lib
  • 也可以手动覆盖它们

最小例子 / 最小场景

默认依赖 target

如果你没有手写 lib,TypeScript 会根据 target 推出一组默认库。

手动指定

{
  "compilerOptions": {
    "target": "ES2020",
    "lib": ["ES2020", "DOM"]
  }
}

常见适用场景

浏览器前端

通常需要:

  • DOM
  • 对应版本的 ES*

Node 项目

很多时候并不希望默认带上浏览器 DOM 类型,以避免:

  • 误以为 document / window 在运行时可用

边界与易混淆点

lib 管的是“可见的类型 API”,不是 polyfill

哪怕类型里有 Promise 或 Map,运行时环境也未必真的有对应实现。

target 和 lib 可以拆开

官方文档明确说,两者可以 mix and match。

这意味着你可以:

  • 用较新的语法目标
  • 同时手动控制暴露哪些标准库类型

参考信息

创建于 2026/5/15 更新于 2026/7/15
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本