ts重点学习96-映射类型笔记

export default {}
// 旧的接口
interface IPerson {
name: string;
age: number;
}
// 只读
type ReadonlyTest<T> = {
// 遍历指定类型所有的key,并添加到当前类型上
// obj = {a: 1} obj[a]
readonly [P in keyof T]: T[P]
}
// type res = ReadonlyTest<IPerson>
// 可选
type PartialTest<T> = {
[P in keyof T]?: T[P]
}
// type res = PartialTest<IPerson>
// 通过 + - 指定添加或者删除
interface IPerson2 {
readonly name?: string;
readonly age?: number;
}
type Test<T> = {
-readonly [P in keyof T]-?: T[P]
}
type res = Test<IPerson2>
// Readonly / Partial
interface IPerson3 {
name: string;
age: number;
}
type res1 = Readonly<IPerson3>
type res2 = Partial<IPerson3>

posted @   前端导师歌谣  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示