Skip to content

Latest commit

 

History

History
34 lines (29 loc) · 899 Bytes

File metadata and controls

34 lines (29 loc) · 899 Bytes

Home > types-kit > InternalSlice

InternalSlice type

Signature:

type InternalSlice<
  Arr extends readonly unknown[],
  Start extends number,
  End extends number,
  N extends readonly unknown[] = [],
  R extends readonly unknown[] = [],
> = N['length'] extends End // End > Start => []
  ? R
  : Arr extends readonly [infer H, ...infer T]
  ? InternalSlice<
      T,
      Start,
      End,
      [...N, unknown],
      N['length'] extends Start
        ? [H]
        : IsEmptyTypeArray<R> extends true
        ? []
        : [...R, H]
    >
  : // empty
    R

References: InternalSlice, IsEmptyTypeArray