0Pricing
TypeScript Academy · 课时

工具类型

使用 Partial、Readonly 等工具类型

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

工具类型简介

工具类型

欢迎来到下一课!本课将介绍工具类型。工具类型是 TypeScript 的内置功能,可以简化并增强类型转换。让我们开始吧!

工具类型 — 插图 1

什么是工具类型

什么是工具类型?

工具类型是 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 等。这些工具能让类型处理更加快速、简单。在下一课中,我们将深入学习高级映射类型。让我们继续编写代码吧!

工具类型 — 插图 10

常见问题解答

「工具类型」课时是免费的吗?

是的 — 「工具类型」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 泛型
  2. 类型别名和接口
  3. 工具类型
  4. 类型守卫
← 返回 TypeScript Academy