interface FlyRequestConfig extends Object { url?: string; method?: string; baseURL?: string; headers?: any; body?: any; params?: any; timeout?: number; withCredentials?: boolean; parseJson?: boolean; responseType?: string; /** * 防止缓存,添加时间戳 */ cache?: boolean; /** * 重试次数 */ retry?: number; /** * 重试延迟毫秒 */ retryDelay?: number; /** * 重试次数限制 */ retryCount?: number; /** * 是否自动重试 */ autoRetry?: boolean; } interface FlyError extends Error { status: number; message: string; engine: XMLHttpRequest; request?: FlyRequestConfig; response?: FlyErrResponse; } interface FlyResponse { data: T; request: FlyRequestConfig; engine: XMLHttpRequest; headers: Object; status: number; statusText: string; } interface FlyErrResponse { data: any; headers: Object; status: number; statusText: string; } /** * 返回接口数据结构实体 */ interface ResponseBody { code: number; data: T; msg: string; }; type FlyPromise = Promise>; interface FlyRequestInterceptor { use(onSend?: (request: V) => any): void; lock(): void; unlock(): void; clear(): void; } interface FlyResponseInterceptor { use(onSucceed?: (response: V) => any, onError?: (err: FlyError) => any): void; lock(): void; unlock(): void; clear(): void; } interface Fly { config: FlyRequestConfig; interceptors: { request: FlyRequestInterceptor; response: FlyResponseInterceptor; }; engine: any; request( url: string | FlyRequestConfig, data?: any, config?: FlyRequestConfig, ): FlyPromise; get(url: string, data?: any, config?: FlyRequestConfig): FlyPromise; delete(url: string, data?: any, config?: FlyRequestConfig): FlyPromise; head(url: string, data?: any, config?: FlyRequestConfig): FlyPromise; post(url: string, data?: any, config?: FlyRequestConfig): FlyPromise; put(url: string, data?: any, config?: FlyRequestConfig): FlyPromise; patch(url: string, data?: any, config?: FlyRequestConfig): FlyPromise; all(values: (T | Promise)[]): Promise; spread(callback: (...args: T[]) => R): (array: T[]) => R; lock(): void; unlock(): void; clear(): void; } declare const fly: Fly;