TypeScript 6.0:向新编译器过渡及主要改进
微软于2026年3月23日发布了TypeScript 6.0。此版本作为5.9与即将推出的7.0之间的桥梁,在7.0中将引入基于Go的typescript-go编译器。TypeScript 6.0保留了当前的TypeScript/JavaScript编译器,但包含了便于迁移的更改。tsgo编译器将加速构建、减少内存使用,并在大型项目中提升可扩展性。
TypeScript 7.0预览版可通过VSCode和NPM获取。6.x和7.x分支将共存,直到新分支完全成熟。
TypeScript通过静态类型、类和库兼容性扩展了JavaScript。它编译为浏览器、Node.js、Bun、Deno可用的JS。
新导入和类型特性
新增了对#/前缀的支持,用于导入模块别名,类似于Node.js:
import utils from '#root/utils.js';
这消除了对相对路径如../../utils.js的需求。
--stableTypeOrdering标志启用了来自7.0的确定性类型排序。它确保跨环境的排序一致,但在6.0中会使编译速度降低25%。在迁移前用于诊断。
为Temporal API提供内置类型:带或不带时区的日期操作、转换、格式化和算术运算。
在Map和WeakMap中添加了getOrInsert和getOrInsertComputed——这些upsert方法会返回值或创建条目。
RegExp.escape用于转义特殊字符,以便安全地在new RegExp()中使用。
默认配置更改
为性能和现代化更新了默认tsconfig.json设置:
rootDir="."(包含tsconfig.json的目录)。types=[](显式指定,排除所有@types;编译速度提升20-50%)。target=es2025(es5已过时,最低es6)。- 默认启用
strict。 module=esnext(使用ESM而非CommonJS)。
优化相关的弃用选项
为提升性能,以下选项现已弃用:
--baseUrl。module Foo { ... }(改用namespace Foo { ... })。--outFile(推荐使用esbuild、Rollup、Webpack)。--moduleResolution: classic(切换到nodenext或bundler)。
这些更改简化了向tsgo的过渡并优化了构建。
关键要点
- TypeScript 6.0是使用旧编译器的最后一个版本;7.0将切换到typescript-go以提升速度和可扩展性。
- 新特性:#/导入、Temporal类型、Map upsert、RegExp.escape。
- 默认设置更严格:启用strict、es2025目标、空types。
--stableTypeOrdering标志用于迁移测试(速度降低25%)。- 在新分支成熟前,并行支持6.x和7.x。
此版本为项目定位未来,专注于单体代码库的性能。
— Editorial Team
暂无评论。