TypeScript 提供了许多内置的工具类型(Utility Types),用于在现有类型的基础上进行转换,从而简化类型定义。 你提到的 、 和 是最常用的三个,它们的核心作用都是基于现有类型 创建一个新的类型,但对属性的修饰符做了不同的处理。 以下是详细的解释和代码示例: --- 1. (部分/可选) 作用: 将类型 中的所有属性都变为 可选的(Optional)(即加上 修饰符)。 场景: 当你需要创建一个对象,但只包含原类型的一部分属性时非常有用。常见于更新数据(Patch)或配置项合并的场景。 示例: 原理简述: 相当于把 变成了 。 --- 2. (必填) 作用: 将类型 中的所有属性都变为 必填的(Required)(即移除 修饰符)。它是 的反义词。 场景: 当你定义了一个包含许多可选属性的接口(例如配置对象),但在代码的某个处理阶段(例如合并了默认值之后),你需要确保所有属性都必须存在值,不再是 。 示例: 原理简述: 相当于把 变成了 。 --- 3. (只读) 作用: 将类型 中的所有属性都变为 只读的(Readonly)。 场景: 用于防止对象被修改。常见...