message: Treat enforceTypes differently for arrays
diff: @@ -284,14 +284,20 @@ type RemoveDeletingObjectKeys<T> = RemoveNever<
  }
  >;
  -type MergeObjectProperty<T, U, M extends MergeObjectOptions> = T extends Array<any>
  +type MergeObjectProperty<T, U, M extends MergeObjectOptions> = M extends { enforceTypes: true }
  + ? T extends Array<any>
  + ? U extends Array<any>
  + ? U
  + : T
  + : T
  + : T extends Array<any>
  ? U
  : T extends Record<string, any>
  ? U extends Record<string, any>
  ? Result<T, U, Omit<M, 'insertKeys'> & { insertKeys: M['insertValues'] }>
  : U
  : U;
  -type UpdateKeys<T, U, M extends MergeObjectOptions> = M extends { enforceTypes: true } | { overwrite: false }
  +type UpdateKeys<T, U, M extends MergeObjectOptions> = M extends { overwrite: false }
  ? T
  : { [K in keyof T]: K extends keyof U ? MergeObjectProperty<T[K], U[K], M> : T[K] };
  type InsertKeys<T, U> = T & Omit<U, keyof T>;
  