TypeScript 面试题
目录

请解释 TypeScript 中的映射类型 (Mapped Types) 的应用场景

· 约 3 分钟读完 · 第 119 / 256 章

推荐答案

映射类型(Mapped Types)是 TypeScript 中一种强大的工具,允许你基于现有类型创建新的类型。通过映射类型,你可以对现有类型的属性进行转换、添加或删除,从而生成新的类型。常见的应用场景包括:

  1. 属性可选化:将对象类型的所有属性变为可选。
  2. 属性只读化:将对象类型的所有属性变为只读。
  3. 属性类型转换:将对象类型的属性类型从一种类型转换为另一种类型。
  4. 属性筛选:根据条件筛选对象类型的属性。

本题详细解读

1. 属性可选化

通过 Partial<T> 映射类型,可以将对象类型 T 的所有属性变为可选。这在处理部分更新对象时非常有用。

2. 属性只读化

通过 Readonly<T> 映射类型,可以将对象类型 T 的所有属性变为只读。这可以防止对象在创建后被修改。

3. 属性类型转换

通过自定义映射类型,可以将对象类型的属性类型从一种类型转换为另一种类型。例如,将所有属性类型转换为 boolean。

4. 属性筛选

通过条件类型和映射类型的结合,可以根据条件筛选对象类型的属性。例如,筛选出所有 string 类型的属性。

映射类型在 TypeScript 中提供了极大的灵活性,使得类型定义更加动态和可复用。