type AB = { a: number } & { b: string }
const v: AB = { a: 1, b: 'hello' } // must have both a and bAn intersection type (A & B) requires an object to satisfy all constituent types simultaneously.
An intersection type A & B combines all properties of both types.
Challenge: Implement mergeObjects<T, U>(a, b) returning T & U.
mergeObjects({ a: 1 }, { b: 2 }) // β { a: 1, b: 2 }