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

_<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[]