js工具库需要index.d.ts 实现.?

写了一个js 工具库,但是 index.d.ts 这块无法得到满意的实现,需要帮助。具体看下方issues
single-promises issues

可在issues 里看到。

阅读 1.6k
2 个回答
interface SingleOptions {
    cache?: number
}

interface SingleFunc<P extends unknown[], T> {
    (...args: P): T extends Promise<unknown> ? T : Promise<T>
    update(opt?: SingleOptions): void
    clear(): void
}

export function singlePromise<P extends unknown[], T>(
    fn: (...args: P) => T,
    opt?: SingleOptions
): SingleFunc<P, T>

给你稍微改了下

declare module 'single-promises' {
  export interface SingleOptions {
      cache?: number;
  }

  type FunctionType = (...args: any) => any;

  export interface SinglePromiseHandle<T extends FunctionType> {
      (...args: Parameters<T>): ReturnType<T> extends Promise<any> ? ReturnType<T> : Promise<ReturnType<T>>;
      clear(): void;
      update(newOpt?: SingleOptions): void;
  }

  export function singlePromise<T extends FunctionType>(fn: T, opt?: SingleOptions): SinglePromiseHandle<T>;

  export const version: string;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题