TypeScript 5.9 RC 正式发布!让我们一起来探索这些更新,看看它们如何为你的项目注入新的活力!
你可以通过下面的命令下载预览版!
npm install -D typescript@rc
import defer
支持TypeScript 5.9 RC 引入了对 ECMAScript 延迟模块评估的支持,通过 import defer
关键字,开发者可以延迟加载模块,直到它们被实际使用。这对于优化大型应用的加载性能尤为重要,尤其是在需要按需加载功能模块的场景中。
示例:
import defer * as feature from "./some-feature.js";
注意:目前仅支持 import defer * as feature from "./some-feature.js"
的形式,不支持命名导入或默认导入,且需在 --module
设置为 preserve
或 esnext
的模式下使用。
--module node20
支持新版本新增了 --module node20
选项,用于模拟 Node.js v20 的模块行为。与 --module nodenext
(默认目标为 esnext
)不同,--module node20
默认将目标设置为 es2023
,更贴近 Node.js v20 的实际运行环境。这一选项为开发者提供了更精确的模块解析支持。
TypeScript 5.9 RC 为许多 DOM API 添加了基于 MDN 的摘要描述。这些描述直接嵌入到类型定义中,帮助开发者在编码时更快速地理解 API 的用途和行为。例如,鼠标事件或 DOM 元素的属性将显示更清晰的说明,提升开发效率。
在 VS Code 中,TypeScript 5.9 RC 引入了一个预览特性:展开式悬停(Expandable Hovers)。开发者可以通过点击 +
/-
按钮,展开或折叠类型信息的详细内容。这一功能特别适合处理复杂的类型定义,让开发者能够按需查看更深入的类型信息。TypeScript 团队正在收集反馈,以进一步完善此功能。
悬停信息的默认最大长度已增加,开发者可以通过 VS Code 的 js/ts.hover.maximumLength
设置来自定义显示长度。这一改进让开发者可以根据需要调整类型信息的展示方式,兼顾简洁性和完整性。
TypeScript 5.9 RC 在性能方面进行了多项优化:
fileOrDirectoryExistsUsingSource
方法中避免了不必要的闭包创建,编译速度提升了约 11%。需要特别注意的是,TypeScript 5.9 RC 引入了一些可能影响现有代码的行为变化:
ArrayBuffer
和 TypedArray
的类型关系:ArrayBuffer
不再是 TypedArray
类型的超类型,这可能导致新的类型错误(如 TS2345
或 TS2322
)。开发者需更新 @types/node
依赖(通过 npm update @types/node --save-dev
)以确保兼容性。
类型推断逻辑的变化可能导致新的错误,开发者可以通过显式指定类型参数来解决。
tsc --init
的更新运行 tsc --init
命令时,生成的 tsconfig.json
文件更加简洁,包含以下预设选项:
{
// 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,
}
}
其他选项以注释形式提供,方便开发者根据需要启用。这一变化降低了新项目的配置复杂性。
自 5.9 Beta 以来,TypeScript 5.9 RC 修复了一些问题,例如恢复了 DOM 库中的 AbortSignal.abort()
方法,确保与标准库的兼容性。
TypeScript 团队正在积极开发 TypeScript 7 的原生端口,开发者可以通过预览版本体验最新的功能。5.9 RC 是正式版发布前的最后一步,预计很快将迎来最终版本。
TypeScript 不断演进,带来更强大的类型检查和更便捷的开发体验。本次发布的 5.9 RC 版本引入了多项令人兴奋的新特性和改进,从延迟模块加载到编辑器体验优化,无一不展现了 TypeScript 团队对开发者需求的关注!
今天的分享就到这里,感谢大家的阅读!如果文章中有任何错误或需要改进的地方,欢迎指正!