Skip to content

Latest commit

 

History

History
32 lines (27 loc) · 1.09 KB

File metadata and controls

32 lines (27 loc) · 1.09 KB

Home > types-kit > InternalDeepMergeTupleValue

InternalDeepMergeTupleValue type

Signature:

type InternalDeepMergeTupleValue<
  A extends readonly unknown[],
  B extends readonly unknown[],
  Result extends readonly unknown[] = [],
> = B extends [B[0], ...infer RestB]
  ? A extends [A[0], ...infer RestA]
    ? B[0] extends infer V
      ? V extends V
        ? InternalDeepMergeTupleValue<
            RestA,
            RestB,
            [
              ...Result,
              If<And<[IsObject<V>, IsObject<A[0]>]>, DeepMerge<A[0], V>, V>,
            ]
          >
        : never
      : never
    : [...Result, ...B]
  : Result

References: InternalDeepMergeTupleValue, If, And, IsObject, DeepMerge