types-kit.internaldeepmergetuplevalue.md

September 4, 2023 ยท View on GitHub

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