Implement the `Merge<F, S>` type, that merges two types into a new type. Master mapped types in TypeScript in this medium-level challenge on TypeScriptPro.
In this medium-level challenge, you'll use Merge<F, S> to merge two types into a new type. The keys of the second type overrides keys of the first type.
Merge two types into a new type. Keys of the second type overrides keys of the first type.
For example
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}Change the following code to make the test cases pass (no type check errors).
type Merge<F, S> = {
[Key in keyof F | keyof S]: Key extends keyof S
? S[Key]
: Key extends keyof F
? F[Key]
: never
}How it works:
F and S ([Key in keyof F | keyof S])S, if it is, we return the value of S[Key], otherwise we check if the key is in F, if it is, we return the value of F[Key], otherwise we return neverThis challenge helps you understand TypeScript's advanced type system and how to apply this concept in real-world scenarios.
This challenge is originally from here.
Be the first to access the course, unlock exclusive launch bonuses, and get special early-bird pricing before anyone else.
Only 27 Spots left
Get 1 month early access
Pre-Launch discount