0Pricing
TypeScript Academy · 课时

TypeScript 5.5+:隔离声明及更多功能

理解 isolatedDeclarations 和近期的性能提升

TypeScript 5.5+:隔离声明及更多功能 是 CoddyKit 上的免费 TypeScript Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 TypeScript Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 TypeScript Academy 课程共包含 4 节课。

TypeScript 5.5 概览

TypeScript 5.5(于 2024 年 6 月发布)引入了推断的类型谓词、独立声明支持、正则表达式语法检查,以及显著的编辑器性能改进。

// npm install typescript@5.5

推断的类型谓词

TS 5.5 现在可以根据会收窄参数类型的函数体,自动推断 is 类型谓词,而不要求显式注解。

// Before 5.5: had to annotate manually
function isString(val: unknown): val is string {
  return typeof val === "string";
}

// After 5.5: TypeScript infers the predicate automatically
function isString(val: unknown) {
  return typeof val === "string";
}
// Inferred: (val: unknown) => val is string

isolatedDeclarations:true

TS 5.5 增加了对 isolatedDeclarations 的正式支持。它要求导出内容具有显式返回类型,以便按文件并行生成声明。

{
  "compilerOptions": {
    "isolatedDeclarations": true
  }
}
// Exported functions without return types now cause an error

正则表达式语法检查

TS 5.5 会报告正则表达式字面量中的语法错误,在编译时捕获常见的正则表达式错误。

const re = /(?<name>\w+)/; // OK — named capture group
const bad = /[z-a]/;        // Error: invalid character class range

常量索引的控制流类型收窄

TS 5.5 改进了对常量对象属性访问和数组索引访问的类型收窄。

const obj = { x: Math.random() > 0.5 ? "a" : "b" };
if (obj.x === "a") {
  // TS 5.5: obj.x is narrowed to "a" here
  console.log(obj.x.toUpperCase());
}

TypeScript 5.6 及以后

TypeScript 持续按季度发布版本,逐步改进类型推断、性能和语言功能,并与 ECMAScript 提案保持一致。

# Quarterly release cadence:
# 5.5: June 2024
# 5.6: September 2024
# 5.7: December 2024
# 5.8: March 2025

关注 TypeScript 路线图

TypeScript 团队会在 GitHub 上为每个版本发布迭代计划。关注这些计划有助于您预期即将推出的功能。

# TypeScript iteration plans:
# github.com/microsoft/TypeScript/issues?q=Iteration+Plan

与 ECMAScript 保持一致

TypeScript 会跟进 ECMAScript 提案。第 3 阶段提案(例如装饰器、using 和 Object.groupBy)通常会在进入第 3 阶段后不久加入 TypeScript。

# TC39 proposals: https://tc39.es/proposals/
# Stage 3 = TypeScript eligible for inclusion

安全升级 TypeScript

升级 TypeScript 版本时,请运行 tsc --noEmit,并在提交版本升级之前检查 TypeScript 更新日志中的重大变更。

npm install typescript@latest
npx tsc --noEmit
# Review: https://www.typescriptlang.org/docs/handbook/release-notes/overview.html

使用 @typescript/nightly 保持最新

使用 TypeScript 每夜构建版,可以在正式发布之前测试即将推出的功能或报告错误。

npm install typescript@next
# Use nightly in a separate branch or experimental project

社区资源

您可以通过官方版本、TypeScript 博客、Matt Pocock 的 Total TypeScript,以及 TypeScript Discord 社区来了解 TypeScript 的最新动态。

# Resources:
# typescriptlang.org/docs
# devblogs.microsoft.com/typescript
# totaltypescript.com
# discord.gg/typescript

回顾:TypeScript 5.5+

TS 5.5 带来了推断的类型谓词、正式的 isolatedDeclarations 支持、正则表达式语法检查和改进的类型收窄。TypeScript 按季度发布版本——请关注路线图,并使用 --noEmit 检查安全升级。

快速检查

TypeScript 5.5 对类型谓词函数做了什么?

您学到的内容

TypeScript 5.5+ 带来了推断的类型谓词、用于并行工具处理的 isolatedDeclarations、正则表达式语法检查,以及改进的控制流类型收窄。请关注季度路线图,使用 --noEmit 验证后再升级,并参与 TypeScript 社区以了解最新动态。

常见问题解答

「TypeScript 5.5+:隔离声明及更多功能」课时是免费的吗?

是的 — 「TypeScript 5.5+:隔离声明及更多功能」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 TypeScript Academy 课程的其余内容,请升级到 CoddyKit PRO。 TypeScript Academy 课程共包含 4 节课。

「TypeScript 5.5+:隔离声明及更多功能」这节课中我会学到什么?

理解 isolatedDeclarations 和近期的性能提升 你通过在浏览器中直接运行的动手代码来练习 TypeScript Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 TypeScript Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 TypeScript Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「TypeScript 5.5+:隔离声明及更多功能」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 TypeScript Academy 课中编写并运行代码吗?

能。每节 TypeScript Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. TypeScript 5.0:标准装饰器与 const 类型参数
  2. TypeScript 5.1-5.2:改进的类型推断
  3. TypeScript 5.3-5.4:新的收窄功能与 NoInfer
  4. TypeScript 5.5+:隔离声明及更多功能
← 返回 TypeScript Academy