定义一个对象,有且只有一个特定类型,如{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
}
0 个回复