TypeScript 7 现代开发指南:从类型基础到装饰器
TypeScript 7 现代开发指南:从类型基础到装饰器
更新日期:2026-08-31
技术基线:TypeScript 7.0.2、ECMAScript Modules、现代 Node.js 与主流前端构建工具
原来的 TypeScript 长文把安装编译、基础类型、面向对象、泛型、声明文件和旧版装饰器放在同一篇文章中。它既不适合一次学习,也很难在编译器和模块系统升级后准确维护。本系列将内容重写为 9 篇可以独立阅读的文章,并以 TypeScript 7 的默认行为为起点。
系列目录
| 篇目 | 内容 | 发布链接 |
|---|---|---|
| 01 | TypeScript 7 工程起步:安装、tsconfig 与编译流程 |
开始阅读 |
| 02 | 日常类型:推断、函数、数组与元组 | 开始阅读 |
| 03 | 类型收窄:unknown、never、断言与穷尽检查 |
开始阅读 |
| 04 | 对象建模:对象类型、索引签名与只读数据 | 开始阅读 |
| 05 | 类型组合:联合、交叉、type、interface 与 enum |
开始阅读 |
| 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下的旧版装饰器写法当作当前标准装饰器。
官方资料
本文为原创内容,采用 CC BY-NC-ND 4.0 协议;转载请注明来自 LikeYY。
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果
音乐天地