typescript 中的 pick 工具类型
typescript 中的 pick 工具类型
程序员朱永胜背景
Pick
是 TypeScript 提供的一个工具类型,用于从已有类型中选择一组属性,构造一个新的类型。这有助于在类型系统中实现更灵活和精细的控制。
使用场景
当你需要从一个大型接口或类型中仅提取特定属性时,Pick
是非常有用的。这避免了重复定义类似的类型,提高了代码的可维护性。
语法
1 | type Pick<T, K extends keyof T> = { |
T
: 原始对象类型。K
: 需要提取的键(属性)组成的联合类型。
例子
1 | interface User { |
在这个例子中,我们从 User
类型中提取了 id
和 name
属性,创建了新的类型 UserPreview
。
注意点
- K 必须是 T 的子集:选择键必须是原始对象中的键。
- 动态选择限制:不能在运行时动态选择属性,必须在编译期确定。
对比:Partial Vs. Pick
特性 | Partial | Pick |
---|---|---|
用途 | 将所有属性设为可选 | 从现有类型中选取部分属性 |
修改范围 | 修改所有属性 | 修改指定的一组属性 |
示例代码 | Partial<T> |
Pick<T, K> |
通过这种对比可以看出,虽然两者都是用于操作对象属性,但用途和修改范围有明显区别。