PokéRogue
    Preparing search index...

    Type Alias PrivateIntRange<Start, End, Step, Gap, List, EndLengthTuple, IsReversed>

    PrivateIntRange: IsReversed extends true
        ? never
        : Gap extends 0
            ? List["length"] extends End
                ? Exclude<List[number], never>
                : PrivateIntRange<
                    Start,
                    End,
                    Step,
                    Gap,
                    [...List, List["length"]],
                    EndLengthTuple,
                    false,
                >
            : List extends [...(infer U), ...EndLengthTuple]
                ? Exclude<List[number], never>
                : PrivateIntRange<
                    Start,
                    End,
                    Step,
                    Gap,
                    [...List, List["length"], ...TupleOf<Gap, never>],
                    EndLengthTuple,
                    false,
                >

    The actual implementation of IntRange. It's private because it has some arguments that don't need to be exposed.

    Type Parameters

    • Start extends number
    • End extends number
    • Step extends number
    • Gap extends number = Subtract<Step, 1>
    • List extends unknown[] = TupleOf<Start, never>
    • EndLengthTuple extends unknown[] = TupleOf<End>
    • IsReversed extends boolean = IsNegative<End> extends true
          ? true
          : List extends [...EndLengthTuple, unknown, ...unknown[]] ? true : false