Pick和Extract的区别示例

在 TypeScript 中,PickExtract 是两种不同的类型操作工具。它们分别用于从一个已有的类型中选择或提取部分属性和从联合类型中提取符合条件的类型。

Pick 类型

Pick<T, K> 用于从类型 T 中选取指定的键 K 所对应的属性,创建一个新的类型。

示例:

interface Person { name: string; age: number; address: string; } // 使用 Pick 从 Person 中提取 name 和 age 属性创建新的类型 type BasicInfo = Pick<Person, 'name' | 'age'>; const person: BasicInfo = { name: 'Alice', age: 30, }; // 不允许包含未在 Pick 中声明的属性(如 address) // person.address = '123 Main St.'; // 这行代码会报错,因为 address 在 BasicInfo 中不存在

Extract 类型

Extract<T, U> 用于从联合类型 T 中提取出与类型 U 相匹配的部分,形成一个新的联合类型。

示例:

type Color = 'red' | 'green' | 'blue' | 'yellow'; type PrimaryColors = 'red' | 'blue'; // 使用 Extract 提取 Color 联合类型中属于 PrimaryColors 的颜色 type PrimaryColorType = Extract<Color, PrimaryColors>; let color: PrimaryColorType = 'red'; // 正确 color = 'green'; // 错误,'green' 不是 PrimaryColors 中的成员

总结来说:

  • Pick 用来从对象类型中选择子集属性。
  • Extract 用来从联合类型中选择符合特定条件的类型成员。

__EOF__

本文作者龙陌
本文链接https://www.cnblogs.com/longmo666/p/18051934.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   龙陌  阅读(109)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示