TypeScript 7 现代开发指南:从类型基础到装饰器

更新日期:2026-08-31
技术基线:TypeScript 7.0.2、ECMAScript Modules、现代 Node.js 与主流前端构建工具

原来的 TypeScript 长文把安装编译、基础类型、面向对象、泛型、声明文件和旧版装饰器放在同一篇文章中。它既不适合一次学习,也很难在编译器和模块系统升级后准确维护。本系列将内容重写为 9 篇可以独立阅读的文章,并以 TypeScript 7 的默认行为为起点。

系列目录

篇目 内容 发布链接
01 TypeScript 7 工程起步:安装、tsconfig 与编译流程 开始阅读
02 日常类型:推断、函数、数组与元组 开始阅读
03 类型收窄:unknownnever、断言与穷尽检查 开始阅读
04 对象建模:对象类型、索引签名与只读数据 开始阅读
05 类型组合:联合、交叉、typeinterfaceenum 开始阅读
06 类设计:修饰符、抽象类与接口契约 开始阅读
07 泛型进阶:约束、keyof、映射类型与工具类型 开始阅读
08 模块与声明文件:ESM、模块解析和 .d.ts 开始阅读
09 装饰器:标准语法与旧版迁移 开始阅读

2026 年的技术基线

本系列在 2026-08-31 核对 npm latest 标签后,以 TypeScript 7.0.2 为稳定基线。TypeScript 7 是编译器和语言服务的原生移植版本,普通项目仍通过 typescript 包安装,并继续使用熟悉的 tsc 命令,但完整构建通常比旧版快 8~12 倍。

TypeScript 7 延续 TypeScript 6 的类型检查行为,同时采用一组更适合现代项目的新默认值:

  • strict 默认开启;
  • module 默认为 esnext
  • target 默认指向紧邻 esnext 之前的稳定 ECMAScript 版本;
  • noUncheckedSideEffectImports 默认开启;
  • types 默认为空数组,不再自动把所有可见的 @types 包加入全局作用域;
  • rootDir 默认为项目根目录 ./
  • 旧的 node / node10 / classic 模块解析和 target: es5 不再受支持。

这些是“没有显式配置时”的默认行为。应用项目仍应根据运行环境明确选择 moduleResolution: "bundler""nodenext",库项目还要明确声明文件、导出映射和兼容范围。

阅读建议

  • 第一次学习 TypeScript:按 01 → 09 顺序阅读,先学会让编译器参与日常开发,再进入类型编程。
  • 已会 JavaScript:重点阅读 02~05,理解推断、收窄和结构化类型系统。
  • 正在维护旧 TypeScript 项目:先看 01、08、09,检查 TypeScript 7 默认值、模块解析和两套装饰器语义。
  • 业务开发遇到“类型写得比代码还复杂”:回看 03、04、07。优先让推断工作,只在边界建模,不要为了展示技巧制造泛型。

本系列的取舍

这不是 TypeScript 类型系统的完整参考手册。文章会优先讲日常工程中最常用、最容易误用的部分,并刻意避免以下旧习惯:

  • 不建议全局安装 TypeScript;项目应固定本地版本并提交 lockfile。
  • 不用 any 掩盖不可信输入;边界数据先用 unknown,验证后再收窄。
  • 不把类型断言当作类型转换;断言不会生成运行时代码。
  • 不默认用 enum 表示所有常量;普通应用常量优先考虑字面量联合和 as const 对象。
  • 不把 experimentalDecorators 下的旧版装饰器写法当作当前标准装饰器。

官方资料

下一篇:TypeScript 7 工程起步