• Type Parameters

    • Base extends Constructor<object>
    • K extends string | number | symbol

    Parameters

    • BaseClass: Base
    • methodName: K extends keyof InstanceType<Base>
          ? InstanceType<Base>[K<K>] extends (idx: number) => R
              ? [idx: number] extends Parameters<any[any]> ? K<K> : never
              : never
          : never

    Returns { prototype: __type<any, any>; new (...args: any[]): __type<Base, K> } & Base