TypeScript 5.x 更新

TypeScript 由 Microsoft 积极维护和更新。在 5.x 版本中,进行了大量实用性和生活质量更新。

本章涵盖了最受欢迎的更新,以实现更严格和更灵活的类型安全。

提醒一下,这些功能仅在 5.x+ 中可用。

模板字面量类型

模板字面量类型现在允许我们使用模板字面量创建更精确的类型。我们可以在编译时定义依赖于字符串实际值的自定义类型。

实例

type Color = "red" | "green" | "blue";
type HexColor<T extends Color> = `#${string}`;

// 用法:
let myColor: HexColor<"blue"> = "#0000FF";

亲自试一试

索引签名标签

索引签名标签允许我们使用计算后的属性名为索引签名打标签。在处理动态对象时,它有助于提供更描述性的类型信息。

实例

type DynamicObject = { [key: string as `dynamic_${string}`]: string };

// 用法:
let obj: DynamicObject = { dynamic_key: "value" };

亲自试一试

5.x 现在还支持原生 JavaScript 私有字段。TypeScript 中的 'private' 仍然按照“”部分中讨论的方式工作。