問題に挑戦!
2 つの型をマージして新しい型を作ります。2 つ目に指定した型のキーは 1 つ目の型のキーを上書きします。
例えば
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}
💡ヒント
Mergeの第一引数と第二引数のキーを[K in keyof F | keyof S]
のように列挙することで、オブジェクトのプロパティとして展開できます。
あとは、extends
を使った条件分岐で、それぞれのプロパティに対する値の型を決定しましょう。