- 文档
- 教程
本篇指南梳理 The Concise TypeScript Book 项目收录的 2026 年 TypeScript 官方新闻动态,聚焦 TypeScript 7 原生(Go)编译器、原生语言服务与原生 API 的演进历程:从 7.0 稳定版发布、RC 候选版,到编辑器体验、配置诊断、符号搜索、VFS、代码生成与 typescript-eslint 兼容性等系列改进。读完本文,你将理解 TypeScript 7 迁移的时间线、各版本的能力边界、关键配置项(如--checkers、--builders、workspaceSymbols.scope)以及新原生 API 的适用场景,从而为项目升级与工具链适配做出准确判断。
新闻动态的定位与信息来源
该文档位于 website/src/content/docs/cs-cz/typescript-news/index.md,是整个书籍多语言站点的 TypeScript 新闻索引页(sidebar.hidden为 true,不出现在侧边栏),其作用是汇总 2026 年 TypeScript 官方的重要发布与变更,并为每则新闻提供指向 2026 年度子页面 的深入链接。
索引页收录了从 2026 年 6 月到 9 月共 11 则新闻,按时间倒序排列:
| 日期 | 主题 | 关联文章(仓库相对路径) |
|---|---|---|
| 2026-09-14 | 原生 API 增加 typescript-eslint 所需接口 | typescript-native-api-adds-typescript-eslint-apis |
| 2026-09-09 | 原生 API 增加分层虚拟文件系统(VFS) | typescript-native-api-adds-layered-vfs |
| 2026-09-01 | TypeScript 7.1 为 ambient 模块添加 import 属性 | typescript-7-1-import-attributes-ambient-modules |
| 2026-08-24 | TypeScript 7 修复 union/intersection 中 setter 的可访问性 | typescript-7-fixes-setter-accessibility |
| 2026-08-07 | TypeScript 7 增加工作区符号搜索范围设置 | typescript-7-workspace-symbol-search-scope |
| 2026-07-30 | TypeScript 7 改进 Go to Implementation 内存占用 | typescript-7-go-to-implementation-memory-fix |
| 2026-07-30 | TypeScript 7 恢复配置文件变更后的诊断 | typescript-7-refreshes-config-diagnostics |
| 2026-07-27 | TypeScript 7 原生工具链合并 | typescript-7-native-tooling-consolidates |
| 2026-07-24 | 原生 API 增加代码生成(emit)方法 | typescript-7-native-api-adds-emit-methods |
| 2026-07-08 | TypeScript 7.0 正式发布 | typescript-7-released |
| 2026-06-18 | TypeScript 7.0 RC 候选版发布 | typescript-7-release-candidate |
TypeScript 7.0:原生编译器与语言服务的里程碑
7.0 稳定版(2026-07-08)
2026 年 7 月 8 日,Microsoft 发布了 TypeScript 7.0,这是首个基于 Go 编写的新原生代码的稳定版本。它带来了:
- 原生实现:编译器与语言服务以 Go 编写,采用多线程与共享内存并行处理;
- 构建性能:官方基准中,完整构建速度相比 TypeScript 6 提升 7.7~11.9 倍;
- Language Server Protocol(LSP):语言服务迁移到 LSP,支持的编辑器可以基于同一套原生内核获得更快的项目加载、诊断、补全与导航。
安装稳定版:
npm install --save-dev typescript兼容性与迁移注意
7.0 没有稳定的程序化 API。凡是内置使用 TypeScript 的工具链——包括当前基于 Astro、Vue、MDX、Svelte 的工作流,以及部分 Angular 工作流——在新 API 可用之前仍可能依赖 TypeScript 6。官方预期在 7.1 引入新 API,升级前务必先确认所用框架与工具链的支持情况。
7.0 RC 候选版(2026-06-18)
2026 年 6 月 18 日发布的 RC 是 7.0 稳定版之前的最后一个预发布版本,其核心变化:
- 将类型检查逻辑从 TypeScript 6 移植到新的 Go 编译器与语言服务,保持既有语义的同时借助原生代码与共享内存并行提升性能;
- 引入并行类型检查与项目引用构建:
--checkers:指定类型检查 worker 数量;--builders:指定项目引用(project references)构建 worker 数量;
- 安装方式为:
npm install --save-dev typescript@rcRC 阶段的兼容性策略
RC 同样没有稳定 API,官方提供@typescript/typescript6兼容包,使依赖 TypeScript 6 API 的工具能够与新编译器共存运行。此外 RC 沿用了 TypeScript 6 的默认配置,并把在 TypeScript 6 中标记为废弃(deprecated)的选项视为错误。官方建议团队先迁移到 TypeScript 6,再评估升级到 TypeScript 7。
原生工具链的合并路线
2026 年 7 月 27 日的新闻明确了 TypeScript 7 原生工具的未来形态(typescript-7-native-tooling-consolidates):
tsgo名称基本停止使用;- 原生代码将迁回主仓库
microsoft/TypeScript,项目回归统一的 issue 列表; - VS Code 原生扩展不会被标记为废弃,而是像 JavaScript 调试器扩展一样成为正式分发的一部分。
也就是说,typescript-go等预发布阶段的独立名称与仓库只是迁移过程中的临时产物,并非 TypeScript 7 的长期项目结构。
编辑器体验与语言服务的系列修复
修复 Go to Implementation 的内存扩展问题(2026-07-30)
对于接口成员拥有大量实现、且类型深嵌套的大型项目,语言服务使用 BFS 处理工作队列时会反复扫描整个程序并重新返回相同引用,导致内存与队列任务呈二次方增长(O(K²))。修复方案是在将引用节点加入工作队列前先去重,并避免重复持有符号定义;回归测试验证实现数量翻倍时内存增长约为线性。重复项原本就会从编辑器响应中过滤,因此本次改动聚焦于隐藏的内存开销与生成响应的成本(typescript-7-go-to-implementation-memory-fix)。
恢复配置文件诊断刷新(2026-07-30)
语言服务的配置诊断在 snapshot 更新期间发布。此前修改被监视的tsconfig.json或jsconfig.json只安排了诊断刷新,却没有安排 snapshot 更新,导致新配置错误可能一直保持过时,直到编辑器发送其他请求触发更新。现在语言服务能识别被监视配置文件的变更,并通过 debounce 延迟调度 snapshot 更新,从而仅凭文件监视事件重新发布诊断,不再依赖编辑器的后续请求;回归测试使用非法的target值验证该行为(typescript-7-refreshes-config-diagnostics)。
工作区符号搜索范围设置(2026-08-07)
新增语言服务预置项workspaceSymbols.scope,取值如下:
| 取值 | 行为 |
|---|---|
allOpenProjects(默认) | 在所有打开的项目中搜索符号,保持原有行为 |
currentProject | 将搜索范围限制为包含传入文档的项目 |
配合该设置,VS Code 原生扩展会在workspace/symbol请求中附带一个受支持的 TypeScript/JavaScript 文档:优先使用当前活动文档,否则使用某个打开的受支持文档。语言服务只在workspaceSymbols.scope = currentProject时使用该文档,否则仍搜索所有打开的项目。对于多项目工作区中符号同名的情况,currentProject可以收窄结果集,但需要显式开启(typescript-7-workspace-symbol-search-scope)。
类型检查语义的正确性修复
修复 union/intersection 中 setter 的可访问性(2026-08-24)
对于从 union 与 intersection 合成的属性,此前检查逻辑实际使用 getter 的可访问性来判断,导致 public getter + protected setter 的属性可能通过 union/intersection 被非法写入。修复后读写可访问性被分开记录:
declare class C1 { get foo(): number; protected set foo(value: number); } declare class C2 { get foo(): number; protected set foo(value: number); } declare const c: C1 | C2; c.foo; // 有效:读访问是 public c.foo = 123; // 无效:写访问是 protected该修复保证了「公开读、受限写」的类设计意图在类型组合后依然成立(typescript-7-fixes-setter-accessibility)。
原生 API 的逐步补齐
7.1 里程碑:ambient 模块的 import 属性(2026-09-01)
TypeScript 7.1.0 Beta 合并了 ambient 模块(带 pattern)对 import 属性类型的支持。当导入语句带属性时,编译器会按可赋值性寻找匹配的 ambient 模块;多个声明匹配时选择属性类型最具体的声明。属性类型目前限于值为字符串字面量类型的普通属性;同 pattern 且属性类型相同的声明可以合并,属性类型不同的则保持分离。此次变更不在标准库内置 CSS/text 的 import 声明,相关 ambient 模块仍需项目或工具自行定义(typescript-7-1-import-attributes-ambient-modules)。
// 示意:根据 import 属性选择匹配的 ambient 模块声明 // 例如 type: 'css' / type: 'text' 分别命中不同的模式声明分层虚拟文件系统(VFS)(2026-09-09)
原生 API 新增createFileSystem、createFileSystemWithLib、createFileSystemLayer三个辅助函数,用于创建 snapshot API 接受的 VFS 对象;Snapshot.update可对已有 snapshot 应用新的缓存层。两种 VFS 形态:
full:完全驻留内存,不依赖宿主文件系统回调;layer:缓存未命中时回退到宿主文件系统,并通过removedPaths隐藏宿主上存在的文件/目录。
两者都支持 VFS 内部与宿主路径上的符号链接。工具可以借此建模文件的增、改、删,而无需重建整个文件系统输入。当前限制:使用 VFS 的 snapshot 仍算作真实 snapshot,原生 API 同一时刻只允许一个真实 snapshot,因此 snapshot 操作暂时保持串行(typescript-native-api-adds-layered-vfs)。
代码生成(emit)API(2026-07-24)
新增的四个程序级 API 面向需要生成 JavaScript 或声明文件的工具:
| 方法 | 行为 |
|---|---|
program.emit(emitOnly?) | 将整个程序输出到文件系统(含配置的 VFS),遵守noEmit、noEmitOnError等阻止输出的选项 |
program.emitToString(emitOnly?) | 将整个程序输出为内存字符串,同样遵守阻止输出的选项 |
program.getJavaScriptEmit(files?) | 在内存中返回所选文件的 JavaScript 输出,绕过阻止输出的选项 |
program.getDeclarationEmit(files?) | 在内存中返回所选文件的声明(.d.ts)输出 |
API 用户由此获得「全程序常规输出」与「定向内存输出」两套独立能力(typescript-7-native-api-adds-emit-methods)。
typescript-eslint 所需 API(2026-09-14)
为补全typescript-eslint标记为缺失的接口,原生 API(同步与异步形式均已更新)新增了:
getAwaitedTypegetContextualTypeForArgumentAtIndexgetIndexInfoOfTypegetIndexTypeOfTypegetTypeOfPropertyOfTypegetExportSymbolOfSymbol- 接口/类类型新增
getThisType() - 索引类型查询导出
IndexKind
这一改动缩小了依赖 TypeScript 程序化 API 的工具链的兼容性缺口,使集成方从 checker 与类型系统获得与既有 API 一致的信息(typescript-native-api-adds-typescript-eslint-apis)。
升级决策建议与可用性判断
综合这 11 则新闻,可以得出面向实际工程的升级路径:
- 先对齐 TypeScript 6:7.0 RC 将 TS 6 默认配置设为默认、把废弃选项视为错误,官方明确建议先迁移到 6 再评估 7;
- 确认工具链支持:7.0 无稳定 API,Astro、Vue、MDX、Svelte 及部分 Angular 工作流在新 API 落地(预期 7.1)前可能仍需 TS 6;
@typescript/typescript6兼容包可在过渡期并行运行; - 按需启用新能力:
--checkers/--builders控制并行检查与引用构建的 worker 数;workspaceSymbols.scope = currentProject需显式开启才会生效; - 核对版本中的修复:setter 可访问性、Go to Implementation 内存、配置诊断刷新、VFS、emit API、typescript-eslint API 等多数改动合入原生代码的时间晚于 7.0,新闻原文未给出包含这些修复的具体稳定 npm 版本,落地前请查阅你所安装版本的 release notes 进行确认。
关于信息来源,各则新闻均基于 TypeScript 官方公告、合并的 pull request 或维护者讨论整理,索引页本身仅作汇总导航;详细内容请直接阅读 2026 年新闻目录 中对应的文章。
- 文档
- 教程
相关推荐
- TypeScript 7 原生编译器与语言服务全览:《The Concise TypeScript Book》新闻栏目 2026 年中动态解读
TypeScript 7 原生编译器与语言服务全览:《The Concise TypeScript Book》新闻栏目 2026 年中动态解读 本篇技术指南以《
- TypeScript 7 时代全景时间线:从 Go 原生编译器、LSP 迁移到原生 API 演进的 11 条关键新闻
TypeScript 7 时代全景时间线:从 Go 原生编译器、LSP 迁移到原生 API 演进的 11 条关键新闻 本文为 The Concise TypeS
- TypeScript 7 原生编译器时代:2026 年官方发布动态与开发者实战指南
TypeScript 7 原生编译器时代:2026 年官方发布动态与开发者实战指南 TypeScript 7 是 TypeScript 项目历史上最大的一次底层
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考