ts-toolbelt
Version:
TypeScript's largest utility library
22 lines (21 loc) • 551 B
TypeScript
import { At } from '../Any/At';
import { Overwrite } from '../Object/Overwrite';
import { ComputeRaw } from '../Any/Compute';
import { IntersectOf } from './IntersectOf';
import { Strict } from './Strict';
/**
* @hidden
*/
declare type _Merge<U extends object> = IntersectOf<Overwrite<U, {
[K in keyof U]-?: At<U, K>;
}>>;
/**
* Merge a [[Union]] of [[Object]]s into a single one
* @param U to merge
* @returns [[Object]]
* @example
* ```ts
* ```
*/
export declare type Merge<U extends object> = ComputeRaw<_Merge<Strict<U>>>;
export {};