首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >TypeScript 发布 5.9 预览版!

TypeScript 发布 5.9 预览版!

作者头像
萌萌哒草头将军
发布2025-07-31 15:44:53
发布2025-07-31 15:44:53
22200
代码可运行
举报
文章被收录于专栏:前端框架前端框架
运行总次数:0
代码可运行

前言

TypeScript 5.9 RC 正式发布!让我们一起来探索这些更新,看看它们如何为你的项目注入新的活力!

正文

你可以通过下面的命令下载预览版!

代码语言:javascript
代码运行次数:0
运行
复制
npm install -D typescript@rc
新特性与改进
1. import defer 支持

TypeScript 5.9 RC 引入了对 ECMAScript 延迟模块评估的支持,通过 import defer 关键字,开发者可以延迟加载模块,直到它们被实际使用。这对于优化大型应用的加载性能尤为重要,尤其是在需要按需加载功能模块的场景中。

示例

代码语言:javascript
代码运行次数:0
运行
复制
import defer * as feature from "./some-feature.js";

注意:目前仅支持 import defer * as feature from "./some-feature.js" 的形式,不支持命名导入或默认导入,且需在 --module 设置为 preserveesnext 的模式下使用。

2. --module node20 支持

新版本新增了 --module node20 选项,用于模拟 Node.js v20 的模块行为。与 --module nodenext(默认目标为 esnext)不同,--module node20 默认将目标设置为 es2023,更贴近 Node.js v20 的实际运行环境。这一选项为开发者提供了更精确的模块解析支持。

3. DOM APIs 摘要描述

TypeScript 5.9 RC 为许多 DOM API 添加了基于 MDN 的摘要描述。这些描述直接嵌入到类型定义中,帮助开发者在编码时更快速地理解 API 的用途和行为。例如,鼠标事件或 DOM 元素的属性将显示更清晰的说明,提升开发效率。

4. 展开式悬停(预览)

在 VS Code 中,TypeScript 5.9 RC 引入了一个预览特性:展开式悬停(Expandable Hovers)。开发者可以通过点击 +/- 按钮,展开或折叠类型信息的详细内容。这一功能特别适合处理复杂的类型定义,让开发者能够按需查看更深入的类型信息。TypeScript 团队正在收集反馈,以进一步完善此功能。

5. 可配置的最大悬停长度

悬停信息的默认最大长度已增加,开发者可以通过 VS Code 的 js/ts.hover.maximumLength 设置来自定义显示长度。这一改进让开发者可以根据需要调整类型信息的展示方式,兼顾简洁性和完整性。

6. 性能优化

TypeScript 5.9 RC 在性能方面进行了多项优化:

  • 缓存类型实例化:通过缓存类型实例化,减少了编译过程中的重复计算,提升了性能。
  • 避免闭包创建:在 fileOrDirectoryExistsUsingSource 方法中避免了不必要的闭包创建,编译速度提升了约 11%。
7. 显著的行为变化

需要特别注意的是,TypeScript 5.9 RC 引入了一些可能影响现有代码的行为变化:

  • ArrayBufferTypedArray 的类型关系

ArrayBuffer 不再是 TypedArray 类型的超类型,这可能导致新的类型错误(如 TS2345TS2322)。开发者需更新 @types/node 依赖(通过 npm update @types/node --save-dev)以确保兼容性。

  • 类型参数推断调整

类型推断逻辑的变化可能导致新的错误,开发者可以通过显式指定类型参数来解决。

8. tsc --init 的更新

运行 tsc --init 命令时,生成的 tsconfig.json 文件更加简洁,包含以下预设选项:

代码语言:javascript
代码运行次数:0
运行
复制
{
  // Visit https://aka.ms/tsconfig to read more about this file
"compilerOptions": {
    // File Layout
    // "rootDir": "./src",
    // "outDir": "./dist",

    // Environment Settings
    // See also https://aka.ms/tsconfig_modules
    "module": "nodenext",
    "target": "esnext",
    "types": [],
    // For nodejs:
    // "lib": ["esnext"],
    // "types": ["node"],
    // and npm install -D @types/node

    // Other Outputs
    "sourceMap": true,
    "declaration": true,
    "declarationMap": true,

    // Stricter Typechecking Options
    "noUncheckedIndexedAccess": true,
    "exactOptionalPropertyTypes": true,

    // Style Options
    // "noImplicitReturns": true,
    // "noImplicitOverride": true,
    // "noUnusedLocals": true,
    // "noUnusedParameters": true,
    // "noFallthroughCasesInSwitch": true,
    // "noPropertyAccessFromIndexSignature": true,

    // Recommended Options
    "strict": true,
    "jsx": "react-jsx",
    "verbatimModuleSyntax": true,
    "isolatedModules": true,
    "noUncheckedSideEffectImports": true,
    "moduleDetection": "force",
    "skipLibCheck": true,
  }
}

其他选项以注释形式提供,方便开发者根据需要启用。这一变化降低了新项目的配置复杂性。

9. 其他修复

自 5.9 Beta 以来,TypeScript 5.9 RC 修复了一些问题,例如恢复了 DOM 库中的 AbortSignal.abort() 方法,确保与标准库的兼容性。

未来计划

TypeScript 团队正在积极开发 TypeScript 7 的原生端口,开发者可以通过预览版本体验最新的功能。5.9 RC 是正式版发布前的最后一步,预计很快将迎来最终版本。

最后

TypeScript 不断演进,带来更强大的类型检查和更便捷的开发体验。本次发布的 5.9 RC 版本引入了多项令人兴奋的新特性和改进,从延迟模块加载到编辑器体验优化,无一不展现了 TypeScript 团队对开发者需求的关注!

今天的分享就到这里,感谢大家的阅读!如果文章中有任何错误或需要改进的地方,欢迎指正!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 萌萌哒草头将军 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 正文
    • 新特性与改进
      • 1. import defer 支持
      • 2. --module node20 支持
      • 3. DOM APIs 摘要描述
      • 4. 展开式悬停(预览)
      • 5. 可配置的最大悬停长度
      • 6. 性能优化
      • 7. 显著的行为变化
      • 8. tsc --init 的更新
      • 9. 其他修复
    • 未来计划
  • 最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档