Type Alias _<A, N, Fail, Upper, Lower>
_: IsEqual< A["length"], 0, Fail, NumberPlus.IsInteger< N, { $else: IsAny< N, { $else: NumberPlus.IsNumber< N, { $else: never; $then: N; exact: true }, >; $then: number; }, >; $then: NumberPlus.IsNumber< A["length"], { $else: NumberPlus.IsNegative< N, { $else: GreaterThan<A["length"], N> extends true ? N : Upper; $then: GreaterThan<Abs<N>, A["length"]> extends true ? Lower : Subtract<A["length"], Abs<N>>; }, >; $then: N; exact: true; }, >; }, >,> Type Parameters
- A extends readonly unknown[]
- N extends number
- Fail = never
- Upper = A["length"]
- Lower = 0