首页 > 其他分享 >Pick和Extract的区别示例

Pick和Extract的区别示例

时间:2024-03-04 15:45:20浏览次数:27  
标签:示例 Extract address Pick 类型 type

在 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 用来从联合类型中选择符合特定条件的类型成员。

标签:示例,Extract,address,Pick,类型,type
From: https://www.cnblogs.com/longmo666/p/18051934

相关文章

  • UniDateTimePicker日期转换问题---“2024-03-05” is not a date and time
    这个问题是由于操作系统的日期格式与用StrToDate给UniDateTimePicker.dateTime赋值格式不一致造成的。注意:这个问题在使用UniGui的Standalone模式下没问题,在Windowsservice模式下会出现上述问题。可以在系统的主程序中设置一下系统日期格式:procedureSetDateTimeFormat();var......
  • 大顶堆,小顶堆--优先队列,示例
    有一个数组,要求找出最大的3个数,最小的4个数。 小顶堆,从大到小排序,筛选最小的N个数。//创建一个小顶堆std::priority_queue<int,std::vector<int>,std::greater<int>>min_heap;  大顶堆,从小到大排序,筛选最大的N个数。//创建一个大顶堆std::priori......
  • Django REST framework 安装及简单示例
    Django是python的一个后端服务器框架,用来写webAPI接口简单且方便。Djangorestframework是构建webapi的一个强大而灵活的工具包。 Django官网文档:https://docs.djangoproject.com/en/5.0/ref/settings/Djangorestframework官网文档:https://docs.djangoproject.com/en/5.......
  • 《A Hierarchical Framework for Relation Extraction with Reinforcement Learning》
    代码原文地址摘要现有的大多数方法在确定关系类型之前,需要先识别出所有的实体,这样就忽略了实体提及和关系类型之间的交互。本文提出了一种新颖的联合抽取范式,把相关实体看作是关系的参数(首先检测一个关系,然后提取相应的实体作为关系的参数)。本文在这个范式下采用了一个分层......
  • mitmdump写法示例
    在界面上操作抓住相关的接口,有点类似于loadrunner的录制 安装:pipinstallmitmproxy mitmproxy分为三个组件:mitmproxy mitmweb  可视化的web界面mitmdump 命令行格式,可用于对接python脚本  前置步骤:1.如果是https,需要安装证书2.开启代理:127.0.0.1:8080 ......
  • 策略模式代码示例(二)
    一、定义策略模式,针对每一个不同的类型,调用具有共同接口的不同实现类,从而使得它们可以相互替换。策略模式,针对实现同一接口的不同的类,采用不同的策略。比如,面对高级会员、初级会员会采用不同的折扣。策略模式,可以避免大量的if和else。二、角色策略模式涉及到三个角色:●......
  • Qt 多线程中使用信号槽的示例
    之前对线程理解得不深入,所以对Qt的线程机制没有搞清楚,今天写一篇文章总结一下,如有错误,欢迎指出。    首先需要理解线程是什么,线程在代码中的表现其实就是一个函数,只不过这个函数和主线程的函数同时运行,写C语言的都知道,一般代码是从main()函数开始运行的,每个线程都有一......
  • xss利用之盗取cookie示例
    实验环境目标网站:宿主机:192.168.10.1访问虚拟机win11:192.168.10.134伪造网站:192.168.10.12:100pikachu步骤一:受害者cookie:步骤二:输入xsspayload'"><script>document.location='http://192.168.10.12:100/pikachu/pkxss/xccokie/cookie.php?cookie='+doc......
  • FastAPI系列 :安装启动及简单示例
    安装pip3installfastapipip3installuvicorn[standard]#是一个ASGI异步服务器网关接口服务器框架pip3installpython-multipart#处理表单参数的#完整安装pipinstallfastapi[all]启动程序#命令行启动uvicornmain:app--reload--host0.0.0.0--port8888......
  • Python scipy.ndimage.find_objects用法及代码示例
    用法scipy.ndimage.find_objects(input,max_label=0)在标记数组中查找对象。参数:input:整数数组包含由不同标签定义的对象的数组。值为0的标签将被忽略。max_label:整数,可选要在输入中搜索的最大标签。如果没有给出max_label,则返回所有对象的位置。object_slices:元组......