Open yunliuyan opened 1 year ago
key 遍历为foo,coo的合集
type Merge<T, U> = {
[key in keyof T | keyof U]: key extends keyof U ? U[key] : key extends keyof T ? T[key] : never;
}
type Result = Merge<foo,coo>; // expected to be {name: string, age: number, sex: string}
type Merge<T extends Object, P extends Object> = {
[k in keyof T | keyof P]: k extends keyof P ? P[k] : k extends keyof T ? T[k] : never;
}
type foo = {
name: string;
age: string;
}
type coo = {
age: number;
sex: string
}
type Result = Merge<foo,coo>; // expected to be {name: string, age: number, sex: string}
type Merge<T, U> = {
[K in keyof T | keyof U]: K extends keyof U ? U[K] : K extends keyof T ? T[K] : never;
};
type foo = {
name: string;
age: string;
}
type coo = {
age: number;
sex: string
}
type Result = Merge<foo,coo>;
type MyMerge<T, U> = {
[key in keyof T | keyof U]: key extends keyof U ? U[key] : key extends keyof T ? T[key] : never;
}
type foo = {
name: string;
age: string;
}
type coo = {
age: number;
sex: string
}
type mergeResult = MyMerge<foo,coo>; // expected to be {name: string, age: number, sex: string}
Merge
将两个类型合并成一个类型,第二个类型的键会覆盖第一个类型的键。
例如