前端 TypeScript 面试题, TypeScript 的内置工具类型 Record 有什么作用?
前端 TypeScript 面试题, TypeScript 的内置工具类型 Record 有什么作用?
QA
Step 1
Q:: TypeScript 的内置工具类型 Record 有什么作用?
A:: Record 是 TypeScript 中的一个工具类型,用于构造一个对象类型,其属性键的类型是 K,属性值的类型是 T。K 可以是字符串字面量类型或联合类型,T 则代表属性值的类型。这个工具类型非常适合在你需要创建特定键值对对象时使用。
Step 2
Q:: Record 类型的典型使用场景是什么?
A:: Record 类型通常用于需要将一组特定键映射到一组特定值的场景。例如,当你需要创建一个配置对象,其键是一些预定义的常量,而值是相应的配置数据时,Record 类型就非常有用。
Step 3
Q:: 你能给出 Record 类型的一个简单例子吗?
A:: 当然,假设你有一组字符串常量表示不同的语言代码,你希望将这些代码映射到它们的名称,你可以使用 Record 类型:
const languages: Record<string, string> = {
'en': 'English',
'fr': 'French',
'de': 'German'
};
Step 4
Q:: 如何定义一个更严格的 Record 类型?
A:: 为了让 Record 类型更严格,你可以指定更具体的键和值的类型。例如,假设你有特定的一组键:
const languages: Record<'en' | 'fr' | 'de', string> = {
'en': 'English',
'fr': 'French',
'de': 'German'
};
这样,只有 'en', 'fr', 'de'
作为键是合法的,任何其他键都会导致类型错误。
Step 5
Q:: Record 类型与 Partial 类型有什么区别?
A:: Record 和 Partial 都是 TypeScript 提供的工具类型,但它们的用途不同。Record 用于创建一个键类型和值类型固定的对象,而 Partial 用于将一个对象类型的所有属性设为可选。换句话说,Record 是为对象添加结构,而 Partial 是从已有的对象类型中派生一个更松散的版本。
用途
面试这个内容的目的是评估候选人对 TypeScript 工具类型的理解,以及他们如何使用这些类型来增强代码的可读性和健壮性。Record 类型在实际生产环境中常用于定义具有固定结构的对象,比如配置对象、翻译字典、权限映射等场景。掌握 Record 类型有助于提高代码的类型安全性,避免由于意外的键或值类型错误而导致的运行时错误。\n相关问题
🦆
TypeScript 中的 Partial 类型有什么作用?▷
🦆
TypeScript 中的 Readonly 类型有什么作用?▷
🦆
TypeScript 中的 Pick 类型如何使用?▷
🦆
TypeScript 中的 Omit 类型如何使用?▷
🦆
Mapped Types 在 TypeScript 中有什么作用?▷