实现Typescript的Pick

参考:实现 Pick

Pick

在TypeScript中,Pick是一个内置的工具类型(Utility Type),用于从一个已有的类型中选取一组属性(通过键名)来创建一个新的类型
基本语法: Pick<Type,Keys> Type:表示要从中选取属性的源类型,Keys:表示要选取的属性名的联合类型,这个联合类型必须是Type的键的子集
作用:Pick会从Type中挑选出Keys指定的属性,然后组成一个新的类型

实现

type Pick <T, K extends keyof T> = {
		[P in K]: T[P]
}

K extends keyof T: K必须是T的键的联合类型的子集
[P in K]: T[P]:遍历 K中的每一个属性P,然后将其类型设置为TP
T[P] :表示 T 类型中属性 P 的类型

keyof

keyof操作符接受一个对象类型作为参数,返回改对象属性名组成的字面量联合类型,作用类似于Javascript中的Object.keys

interface Person {
name: string;
age: number
}
type PersonKeys = keyof Person

in

in的右侧会跟一个联合类型,使用in操作符可以对该联合类型进行迭代,其作用类似JavaScript中的for…in

interface Person {
  name: string;
  age: number;
}
type PersonKeys = keyof Person;
type PersonType = {
    [p in PersonKeys]: string
}
let person: PersonType = {
    name: 'string',
    age: 'age'
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值