mosya Type Challenges

問題に挑戦!

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}
引用元

この問題はType Challengesの以下の問題を記載したものです。

💡ヒント

Mergeの第一引数と第二引数のキーを[K in keyof F | keyof S]のように列挙することで、オブジェクトのプロパティとして展開できます。
あとは、extendsを使った条件分岐で、それぞれのプロパティに対する値の型を決定しましょう。

🙌 解説はこちら