TypeScript 作为 JavaScript 的超集,通过静态类型检查极大地提升了代码的可维护性和开发体验。在 TypeScript 的类型系统中,
keyof和typeof是两个极其强大的操作符,它们可以帮助开发者更灵活地操作类型,减少重复代码,并增强类型安全性。本文将深入探讨这两个操作符的用途、区别以及实际应用场景,帮助你更好地掌握 TypeScript 的类型魔法。
1. keyof 操作符:获取对象类型的键集合
1.1 基本概念
keyof 是 TypeScript 中的类型查询操作符,用于获取某个类型的所有键(属性名)组成的联合类型(Union Type)。它的语法非常简单:
type Keys = keyof T; // T 是一个类型
其中,T 可以是一个接口(interface)、类型别名(type)或对象字面量类型。keyof T 的结果是 T 的所有键的字符串字面量联合类型。
1.2 基本示例
假设我们有一个 Person 接口:
interface Person {
name: string;
age: number;
email?: string; // 可选属性
}
使用 keyof 获取 Person 的所有键:
type PersonKeys = keyof Person;
// 等价于 "name" | "age" | "email"
现在,PersonKeys 是一个联合类型,包含 Person 的所有可能键。
1.3 实际应用场景
1.3.1 限制函数参数必须是对象的键
在编写通用工具函数时,我们经常需要确保某个参数是对象的有效键。例如,实现一个安全的属性访问函数:


最低0.47元/天 解锁文章
1345

被折叠的 条评论
为什么被折叠?



