返回首页

TypeScript 6.0:新编译器和功能

TypeScript 6.0 发布,作为对基于 Go 的 typescript-go 编译器的准备。包含 #/ 导入、Temporal API、Map/WeakMap 的 upsert 以及更新的 tsconfig 默认值以提升速度。该版本保持向后兼容性。

TS 6.0 发布:tsgo、导入和优化
Advertisement 728x90

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。

Google AdInline article slot

新导入和类型特性

新增了对#/前缀的支持,用于导入模块别名,类似于Node.js:

import utils from '#root/utils.js';

这消除了对相对路径如../../utils.js的需求。

--stableTypeOrdering标志启用了来自7.0的确定性类型排序。它确保跨环境的排序一致,但在6.0中会使编译速度降低25%。在迁移前用于诊断。

Google AdInline article slot

为Temporal API提供内置类型:带或不带时区的日期操作、转换、格式化和算术运算。

在Map和WeakMap中添加了getOrInsertgetOrInsertComputed——这些upsert方法会返回值或创建条目。

RegExp.escape用于转义特殊字符,以便安全地在new RegExp()中使用。

Google AdInline article slot

默认配置更改

为性能和现代化更新了默认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(切换到nodenextbundler)。

这些更改简化了向tsgo的过渡并优化了构建。

关键要点

  • TypeScript 6.0是使用旧编译器的最后一个版本;7.0将切换到typescript-go以提升速度和可扩展性。
  • 新特性:#/导入、Temporal类型、Map upsert、RegExp.escape。
  • 默认设置更严格:启用strict、es2025目标、空types。
  • --stableTypeOrdering标志用于迁移测试(速度降低25%)。
  • 在新分支成熟前,并行支持6.x和7.x。

此版本为项目定位未来,专注于单体代码库的性能。

— Editorial Team

Advertisement 728x90

继续阅读