@cuppachino/type-space
Version:
A collection of type utilities for TypeScript.
9 lines (8 loc) • 416 B
TypeScript
import type { DeepMergeRight } from './deep-merge-right';
import type { Last } from './tuples/last';
import type { Pop } from './tuples/pop';
import type { UnknownArray } from './unknown-array';
/**
* Deeply merges a tuple of objects from right to left, recursively.
*/
export type DeepMergeAllRight<T extends UnknownArray, Acc = {}> = T extends [] ? Acc : DeepMergeAllRight<Pop<T>, DeepMergeRight<Acc, Last<T>>>;