[已删除]
[已删除]
  • 发布:2022-10-14 03:33
  • 更新:2022-10-14 03:33
  • 阅读:360

TS 如何定义一个二选一的对象类型接口

分类:uts

定义一个对象,有且只有一个特定类型,如{a:string,...}或{b:string,...}或者{...不包含a,b字段}
这是一个大佬写的,但是看不懂,能详细分解,解释一下是如何实现的么

interface Eg1 {  
  name: string;  
  age: number;  
}  

type RequiredOneOf<T, K extends keyof T> = { [P in K]: Omit<T, P> & { [S in P]?: undefined } }[K] extends infer O  
  ? { [K in keyof O]: O[K] }  
  : never;  

type NameOrAge = RequiredOneOf<Eg1, "name" | "age">;  
let strsss:NameOrAge = {  
  // name:'123',  
  age:213  
}
2022-10-14 03:33 负责人:无 分享
已邀请:

要回复问题请先登录注册