Skip to content
TypeScript 5.x:这几个新特性确实好用
TypeScript 今年的更新节奏很快,5.3 到 5.6 连着发了好几版。
大部分是底层改进,用户感知不强。但有几个特性确实让日常开发舒服了不少。
装饰器终于稳了
从实验性功能到正式标准,装饰器等了好几年。
现在可以放心用了,不需要再开 experimentalDecorators 编译选项。写 NestJS 或者自定义注解的时候,心里踏实多了。
类型推断增强
以前有些场景 TS 推断不出来,必须手动标注类型。
5.5 之后聪明了很多。特别是模板字符串类型和条件类型的推断,减少了不少重复的类型声明。
typescript
// 以前需要手动标注
const result: Record<string, number> = {}
// 现在很多场景可以自动推断
const result = Object.fromEntries(
entries.map(([k, v]) => [k, Number(v)])
)satisfies 的妙用
这个操作符从 4.9 引入,到现在越用越顺手。
它能检查类型是否匹配,但不会收窄推断结果:
typescript
const config = {
port: 3000,
host: 'localhost',
} satisfies Record<string, string | number>
// config.port 依然是 number 类型,不会被拓宽为 string | number写配置对象的时候特别好用。
对学习的建议
不需要追每个版本的更新。
把基础打扎实——泛型、联合类型、类型守卫——这些用好了,新特性自然能理解。追新不如练基本功。
