工具类型
使用 Partial、Readonly 等工具类型
工具类型 是 CoddyKit 上的免费 TypeScript Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 TypeScript Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 TypeScript Academy 课程共包含 4 节课。
工具类型简介
工具类型
欢迎来到下一课!本课将介绍工具类型。工具类型是 TypeScript 的内置功能,可以简化并增强类型转换。让我们开始吧!

什么是工具类型
什么是工具类型?
工具类型是 TypeScript 提供的预定义类型,用于执行常见的类型转换,例如将属性设为可选或只读,以及从某个类型中选取特定属性。
示例:
type User = {
name: string;
age: number;
email: string;
};
type PartialUser = Partial<User>;
let user: PartialUser = { name: "Alice" };
// Only 'name' is provided
Partial
Partial
Partial 工具类型会将某个类型的所有属性设为可选。示例:
任务:使用 Partial 工具创建一个类型,并使用它定义一个变量。
type User = {
name: string;
age: number;
};
type OptionalUser = Partial<User>;
let user: OptionalUser = { name: "Bob" };
// 'age' is optional
Readonly
Readonly
Readonly 工具类型会使某个类型的所有属性都不可变。示例:
任务:使用 Readonly 工具类型创建一个不可变对象。
type User = {
name: string;
age: number;
};
type ReadonlyUser = Readonly<User>;
let user: ReadonlyUser = { name: "Alice", age: 25 };
// user.age = 30;
// Error: Cannot assign to 'age' because it is a read-only property
选取
选取
Pick 工具类型会从某个类型中选取特定属性。示例:
任务:使用 Pick 工具类型创建一个仅包含所选属性的类型。
type User = {
name: string;
age: number;
email: string;
};
type UserNameAndEmail = Pick<User, "name" | "email">;
let user: UserNameAndEmail = { name: "Alice", email: "alice@example.com" };
省略
省略
Omit 工具类型会从某个类型中排除特定属性。示例:
任务:使用 Omit 工具类型从某个类型中排除一个属性。
type User = {
name: string;
age: number;
email: string;
};
type UserWithoutEmail = Omit<User, "email">;
let user: UserWithoutEmail = { name: "Bob", age: 30 };
记录
记录
Record 工具类型会创建一个包含一组键以及指定值类型的类型。示例:
任务:使用 Record 工具类型创建键和值之间的映射。
type Role = "admin" | "user" | "guest";
type Permissions = Record<Role, string[]>;
let rolePermissions: Permissions = {
admin: ["read", "write", "delete"],
user: ["read", "write"],
guest: ["read"],
};
必需
必需
Required 工具类型会使某个类型的所有属性都成为必需属性。示例:
任务:使用 Required 工具类型使所有属性都成为必需属性。
type User = {
name?: string;
age?: number;
};
type FullUser = Required<User>;
let user: FullUser = { name: "Alice", age: 30 };
// Both 'name' and 'age' are required
做得好!
做得好!
恭喜您!您已经学习了 TypeScript 内置的工具类型,包括 Partial、Readonly、Pick、Omit 等。这些工具能让类型处理更加快速、简单。在下一课中,我们将深入学习高级映射类型。让我们继续编写代码吧!

常见问题解答
「工具类型」课时是免费的吗?
是的 — 「工具类型」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 TypeScript Academy 课程的其余内容,请升级到 CoddyKit PRO。 TypeScript Academy 课程共包含 4 节课。
「工具类型」这节课中我会学到什么?
使用 Partial、Readonly 等工具类型 你通过在浏览器中直接运行的动手代码来练习 TypeScript Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 TypeScript Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 TypeScript Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「工具类型」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 TypeScript Academy 课中编写并运行代码吗?
能。每节 TypeScript Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。