Type Alias _<A, B, C, Index, DeleteCount, Insert>

_: 0 extends A["length"]
    ? IsTuple<Insert, { $else: [B, C]; $then: [[...Insert, ...B], C] }>
    : Index extends B["length"]
        ? IsNever<
            DeleteCount,
            {
                $else: ArrayPlus.SplitAt._D<A, B, C, DeleteCount, Insert>;
                $then: [B, A];
            },
        >
        : A extends readonly [infer Head, ...(infer Tail)]
            ? ArrayPlus.SplitAt._<
                Tail,
                [...B, Head],
                [],
                Index,
                DeleteCount,
                Insert,
            >
            : "unexpected: A does not extends [Head, ...Tail]"

Type Parameters

  • A extends readonly unknown[]
  • B extends readonly unknown[]
  • C extends readonly unknown[]
  • Index extends number
  • DeleteCount
  • Insert extends readonly unknown[]