@isaacs/catcher
    Preparing search index...

    Type Alias OverloadMapRaw<F>

    OverloadMapRaw: F extends {
        (...a: A0): R0;
        (...a: A1): R1;
        (...a: A2): R2;
        (...a: A3): R3;
        (...a: A4): R4;
        (...a: A5): R5;
        (...a: A6): R6;
        (...a: A7): R7;
        (...a: A8): R8;
        (...a: A9): R9;
    }
        ? [
            [NeverUnknown<A0>, R0],
            [NeverUnknown<A1>, R1],
            [NeverUnknown<A2>, R2],
            [NeverUnknown<A3>, R3],
            [NeverUnknown<A4>, R4],
            [NeverUnknown<A5>, R5],
            [NeverUnknown<A6>, R6],
            [NeverUnknown<A7>, R7],
            [NeverUnknown<A8>, R8],
            [NeverUnknown<A9>, R9],
        ]
        : F extends {
            (...a: A0): R0;
            (...a: A1): R1;
            (...a: A2): R2;
            (...a: A3): R3;
            (...a: A4): R4;
            (...a: A5): R5;
            (...a: A6): R6;
            (...a: A7): R7;
            (...a: A8): R8;
        }
            ? [
                [NeverUnknown<A0>, R0],
                [NeverUnknown<A1>, R1],
                [NeverUnknown<A2>, R2],
                [NeverUnknown<A3>, R3],
                [NeverUnknown<A4>, R4],
                [NeverUnknown<A5>, R5],
                [NeverUnknown<A6>, R6],
                [NeverUnknown<A7>, R7],
                [NeverUnknown<A8>, R8],
            ]
            : F extends {
                (...a: A0): R0;
                (...a: A1): R1;
                (...a: A2): R2;
                (...a: A3): R3;
                (...a: A4): R4;
                (...a: A5): R5;
                (...a: A6): R6;
                (...a: A7): R7;
            }
                ? [
                    [NeverUnknown<A0>, R0],
                    [NeverUnknown<A1>, R1],
                    [NeverUnknown<A2>, R2],
                    [NeverUnknown<A3>, R3],
                    [NeverUnknown<A4>, R4],
                    [NeverUnknown<A5>, R5],
                    [NeverUnknown<A6>, R6],
                    [NeverUnknown<A7>, R7],
                ]
                : F extends {
                    (...a: A0): R0;
                    (...a: A1): R1;
                    (...a: A2): R2;
                    (...a: A3): R3;
                    (...a: A4): R4;
                    (...a: A5): R5;
                    (...a: A6): R6;
                }
                    ? [
                        [NeverUnknown<A0>, R0],
                        [NeverUnknown<A1>, R1],
                        [NeverUnknown<A2>, R2],
                        [NeverUnknown<A3>, R3],
                        [NeverUnknown<A4>, R4],
                        [NeverUnknown<A5>, R5],
                        [NeverUnknown<A6>, R6],
                    ]
                    : F extends {
                        (...a: A0): R0;
                        (...a: A1): R1;
                        (...a: A2): R2;
                        (...a: A3): R3;
                        (...a: A4): R4;
                        (...a: A5): R5;
                    }
                        ? [
                            [NeverUnknown<A0>, R0],
                            [NeverUnknown<A1>, R1],
                            [NeverUnknown<A2>, R2],
                            [NeverUnknown<A3>, R3],
                            [NeverUnknown<A4>, R4],
                            [NeverUnknown<A5>, R5],
                        ]
                        : F extends {
                            (...a: A0): R0;
                            (...a: A1): R1;
                            (...a: A2): R2;
                            (...a: A3): R3;
                            (...a: A4): R4;
                        }
                            ? [
                                [NeverUnknown<A0>, R0],
                                [NeverUnknown<A1>, R1],
                                [NeverUnknown<A2>, R2],
                                [NeverUnknown<A3>, R3],
                                [NeverUnknown<A4>, R4],
                            ]
                            : F extends {
                                (...a: A0): R0;
                                (...a: A1): R1;
                                (...a: A2): R2;
                                (...a: A3): R3;
                            }
                                ? [
                                    [NeverUnknown<A0>, R0],
                                    [NeverUnknown<A1>, R1],
                                    [NeverUnknown<A2>, R2],
                                    [NeverUnknown<A3>, R3],
                                ]
                                : F extends { (...a: A0): R0; (...a: A1): R1; (...a: A2): R2 }
                                    ? [
                                        [NeverUnknown<(...)>, R0],
                                        [NeverUnknown<(...)>, R1],
                                        [NeverUnknown<(...)>, R2],
                                    ]
                                    : F extends { (...a: ...): ...; (...a: ...): ... }
                                        ? [[(...), (...)], [(...), (...)]]
                                        : F extends (...a: ...) => ... ? [(...)] : never

    Turn an overload function into a [Parameters,ReturnType][] list. Always contains 10 entries, any that do not correspond to a defined function signature are sometimes [never, unknown]. and sometimes just fail to extend. Haven't figured out why it works sometimes one way and sometimes another. These are filtered out in the subsequent step if it matches the first type.

    Type Parameters

    • F