2025年的TypeScript:新特性与关键变化概览

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

TypeScript в 2025 году: что нового и как это изменит вашу разработку



前端开发的世界不会停滞不前,TypeScript 继续巩固其作为构建可扩展且可靠应用程序的主要工具的地位。到 2025 年,该语言迎来了一系列重大更新,涉及类型系统和编译器本身的性能。在本文中,我们将分析已经可用或将在未来版本中推出的关键创新。



无论您是用 TypeScript 编写代码,还是刚刚开始学习这门语言,了解新功能都将帮助您编写更简洁、更安全、更快速的代码。我们将探讨四个主要方向:类型系统的演变、新的编译器、期待已久的装饰器 v2 以及异步处理改进。



1. 类型系统的进化:条件类型和改进的类型推断



2025 年,TypeScript 的类型系统变得更加强大和灵活。开发者现在可以更精确地描述类型之间的复杂依赖关系。



改进的条件类型:

现在,条件类型可以在更广泛的上下文中与 infer 协同工作,从而能够从复杂的嵌套结构中提取类型,而无需重复编写冗余代码。



// 示例:从 Promise 中提取响应类型type UnwrapPromise<T> = T extends Promise<infer U> ? U : T;

type Result = UnwrapPromise<Promise<string[]>>;// Result = string[]


递归模板字面量类型:

新的语法支持创建递归的模板字面量类型,用于解析字符串字面量。这在处理 API 和路由时特别有用。



// 解析格式为 "user:123:admin" 的字符串type ParseUser<S extends string> =   S extends `${infer Name}:${infer Id}:${infer Role}`     ? { name: Name; id: Id; role: Role }    : never;

type User = ParseUser<'alice:456:editor'>;// User = { name: "alice"; id: "456"; role: "editor" }


数组解构的自动类型推断:

编译器现在能更好地理解解构时的元组,减少了显式类型标注的需求。



function getData(): [string, number, boolean] {  return ['hello', 42, true];}

// 以前需要显式声明 const [a, b, c]: [string, number, boolean] = getData();const [a, b, c] = getData();// a: string, b: number, c: boolean — 现在自动推断


2. 基于 Rust 的新编译器:速度与性能



2025 年最重磅的发布之一是用 Rust 重写的 TypeScript 编译器。这并非要取代现有的转译器,而是作为一个补充工具,能显著提升大型项目的类型检查速度。



核心特性:

  • 速度: 在拥有数百万行代码的项目中,类型检查速度提升 5-10 倍。
  • 增量编译: 修改单个文件时,仅重新检查受影响的模块,而非整个项目。
  • LSP 服务器: 基于 Rust 的新语言服务器协议实现,为 IDE 提供即时的代码提示和自动补全。
  • 兼容性: 完全支持现有的 tsconfig.json 配置以及 TypeScript 5.x 编写的代码。


# 安装新编译器npm install -g typescript-rs

# 运行类型检查(类似 tsc --noEmit)tsc-rs --check

# 以监听模式运行tsc-rs --watch


何时使用? 对于小型项目(少于 10,000 行代码),差异可能不明显。但对于企业级应用和 monorepo 项目来说,新编译器能够显著减少等待时间,让开发流程更加顺畅。

博客

书籍推荐