1. type IsPlainObject<T extends unknown> = T extends object
    2. ? T extends null
    3. ? never
    4. : T
    5. : never;
    6. type RemoveVoid<T> = T extends void ? never : T;
    7. type Merge<T,U> = {
    8. [K in Exclude<keyof T, keyof U>]: T[K]
    9. } & U