记录一下关于typescript类型的相关用法

1、展平类型

// 这是一个映射类型的定义,它会遍历类型 T 所有属性的键(即 keyof T)
// T[KeyType]获取该键名对应的类型
/** 
* 总的来说,Simplify<T> 的效果相当于直接复制了类型 T 的结构,因为它简单地映射了 T 的每个属性到相* 同的属性名和类型上。不过,这种类型别名在某些特定情况下可能会有用,比如在处理复杂的类型组合或者想要* 强制 TypeScript 将一个类型视为新的类型而不是原始类型的别名时
* 例如,如果你有一个类型 T,它可能是一个联合或交叉类型,使用 Simplify<T> 可以“展平”这个类型,让 * TypeScript 将其视为一个单一的、独立的类型,这在处理类型兼容性问题时可能会有帮助
*/
type Simplify<T> = { [KeyType in keyof T]: T[KeyType] } 

2、将指定属性设置为必须


/**
* Required是另一个TypeScript工具类型,它将Pick<T, K>返回的类型中所有属性设置为必需的,即去掉它* 们的可选标记(?)
* SetRequired<T, K extends keyof T>类型别名的作用就是创建一个新的类型,该类型与原始类型T基本* * 相同,但是其中K指定的属性集都被设置为必需的,不再是可选的
**/
type SetRequired<T, K extends keyof T> = Simplify<Omit<T, K> & Required<Pick<T, K>>>;
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值