映射属性,Required、Partial与Pick
有时候需要一个类型,它依赖于上一个类型,但对属性的要求却不同,简而言之:从旧类型中创建新类型
这里需借助 映射属性 (不能用于interface,只能用于type!)
全转为readonly
type Readonly<T> = { readonly [P in keyof T]: T[P]; } type ReadonlyPerson = Readonly<Person>
备注:Person可为interface或type
全转为Partial
interface Person {
name: string;
age: number;
}
type Partical<T>= {
[P in keyof T]?: T[P];
}
type ParticalPerson= Partical<Person>
interface ParticalInterfacePerson extends ParticalPerson {} //借助type转换interface
转换为Pick (筛选一部分属性)注意in
interface Person { name: string; age: number; } type Pick1<T, K extends keyof T>= { [P in K]?: T[P]; } type PickPerson= Pick1<Person, 'name'>
备注:Pick、Required、Partial现已内置于typescript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2017-01-31 简要总结ajax工作原理及优缺点
2017-01-31 js 正则表达式