interview
typescript-frontend
TypeScript 的内置工具类型 Pick 有什么作用

前端 TypeScript 面试题, TypeScript 的内置工具类型 Pick 有什么作用?

前端 TypeScript 面试题, TypeScript 的内置工具类型 Pick 有什么作用?

QA

Step 1

Q:: TypeScript 的内置工具类型 Pick 有什么作用?

A:: Pick 是 TypeScript 提供的一个内置工具类型,它的作用是从现有的类型中挑选一组属性,构造出一个新的类型。具体来说,Pick<T, K> 会创建一个新的类型,它包含类型 T 中的属性 K(这些属性 K 是 T 的子集)。例如:type Person = { name: string; age: number; address: string }; type PersonName = Pick<Person, 'name'>; 生成的类型 PersonName 只有 name 属性。Pick 通常用于在需要对大型接口进行裁剪,或构建一个只包含部分属性的子类型时,避免重复定义类型。

Step 2

Q:: 使用 Pick 的典型场景有哪些?

A:: Pick 的典型使用场景包括:1. API 数据传输对象(DTO):当从服务端返回的对象非常复杂,而前端只需要其中部分字段时,可以使用 Pick 来简化类型定义。2. 表单操作:当表单中只涉及对象的一部分字段时,可以通过 Pick 创建一个专用的类型来表示这些字段。3. 组件属性:在开发组件时,如果组件只需要传入对象的部分属性,可以通过 Pick 创建一个新的类型来限制传入的 props。

用途

面试 Pick 这个工具类型的原因是,它展示了候选人对 TypeScript 高级类型系统的理解和掌握程度。在实际生产环境中,Pick 是一种非常有效的方式来处理复杂类型,通过提取子集类型,可以使代码更加简洁和可维护。Pick 特别适用于大型项目中的类型管理,尤其是当你处理需要频繁进行属性筛选或重用时,能大大减少重复代码和类型错误的风险。\n

相关问题

🦆
TypeScript 中的 Omit 和 Pick 有什么区别?

Omit 和 Pick 都是 TypeScript 提供的内置工具类型。Pick 用于从类型中选取特定属性,而 Omit 则是从类型中排除特定属性。Omit<T, K> 创建一个新的类型,该类型与 T 类似,但去除了属性 K。例如:type Person = { name: string; age: number; address: string }; type PersonWithoutAddress = Omit<Person, 'address'>; 生成的类型 PersonWithoutAddress 包含 nameage 属性,但不包含 address

🦆
如何使用 TypeScript 的内置工具类型 Partial?

Partial 是 TypeScript 的另一个内置工具类型,用于将类型 T 中的所有属性变为可选。换句话说,Partial<T> 会创建一个新的类型,其中所有属性都是可选的。Partial 通常用于处理可选参数的场景,例如在构造一个对象时,可能并不需要一次性传入所有的属性。

🦆
TypeScript 中的 Readonly 工具类型有什么作用?

Readonly 是 TypeScript 提供的一个内置工具类型,用于将类型 T 中的所有属性变为只读属性。Readonly<T> 创建一个新的类型,其中所有属性都是只读的,不可重新赋值。这在需要防止对象被修改的场景中特别有用,例如当你希望某个对象作为常量传递时。

🦆
什么时候应该使用 TypeScript 的 Record 工具类型?

Record 是 TypeScript 的一种工具类型,用于构造一个键类型为 K,值类型为 T 的对象类型。Record<K, T> 表示一个对象,它的键类型为 K,值类型为 T。例如:type NameAgeMap = Record<string, number>; 表示一个键为字符串类型,值为数字类型的对象。Record 通常用于定义一组固定键的对象类型,特别是在映射表或配置对象的场景中非常有用。

🦆
TypeScript 中的 Utility Types工具类型有什么作用?

TypeScript 提供了一些内置的工具类型,这些类型可以用来操作和转换已有类型。常见的工具类型包括:Partial、Required、Readonly、Pick、Omit、Record 等。这些工具类型极大地增强了 TypeScript 的灵活性,使得开发者可以根据实际需要动态地构造和组合类型,提高了代码的可读性和可维护性。在面试中,工具类型常被考察以了解候选人对 TypeScript 的深入理解以及实际运用能力。