types-kit.internalnormalizesliceindex.md

September 4, 2023 ยท View on GitHub

Home > types-kit > InternalNormalizeSliceIndex

InternalNormalizeSliceIndex type

Signature:

type InternalNormalizeSliceIndex<
  A extends readonly unknown[],
  I extends number,
  R extends readonly unknown[] = [],
> = I extends R['length']
  ? I
  : `-${R['length']}` extends `${I}`
  ? A['length']
  : A extends readonly [unknown, ...infer T]
  ? InternalNormalizeSliceIndex<T, I, [...R, unknown]>
  : // out of range
  `${I}` extends `-${number}`
  ? 0
  : R['length']

References: InternalNormalizeSliceIndex