Files
2026-08-25 11:06:27 +08:00

92 lines
2.6 KiB
TypeScript

import { HttpResponseProxy, HttpResponseData } from './types/httpResponse';
export default HttpResponse;
export function NewHttpResponse(code: number, message: string, data: unknown, url?: string, res?: string): HttpResponseProxy;
/**
* HTTP 响应对象
*/
export class HttpResponse {
static [Symbol.hasInstance](instance: any): boolean;
/**
* @param {number} code
* @param {string} message
* @param {unknown} data
* @param {string} url
* @param {string} res
*/
constructor(code: number, message: string, data: unknown, url: string, res: string);
/** @type {number} */
code: number;
/** @type {string} */
message: string;
/** @type {unknown} */
data: unknown;
/** @type {string} */
url: string;
/** @type {string} */
res: string;
/**
* message 消息弹窗后回调
*
* @overload
* @returns {Promise<unknown>}
*
* @overload
* @param {(data: unknown) => unknown} fn
* @param {false} isResp
* @returns {Promise<unknown>}
*
* @overload
* @param {(response: HttpResponse) => unknown} fn
* @param {true} isResp
* @returns {Promise<unknown>}
*
* @param {(value: unknown | HttpResponse) => unknown} [fn]
* @param {boolean} [isResp=false]
* @returns {Promise<unknown>}
*
* fn 内部抛出的异常会变成 reject,而不是同步抛出。
*/
msg: (fn?: (value: unknown | HttpResponse) => unknown, isResp?: boolean) => Promise<unknown>;
/**
* 使用完整 HttpResponse 对象处理响应
*
* 与 msg() 的区别:
*
* msg(false) -> 回调拿 data
*
* msg(true) -> 回调拿 HttpResponse
*
* resp() -> 永远拿 HttpResponse
*
* @overload
* @returns {Promise<unknown>}
*
* @overload
* @param {(response: HttpResponse) => unknown} fn
* @returns {Promise<unknown>}
*
* @overload
* @param {undefined} fn
* @param {(reason: HttpResponse) => unknown} onrejected
* @returns {Promise<unknown>}
*
* @param {(response: HttpResponse) => unknown} [fn]
* @param {(reason: HttpResponse) => unknown} [onrejected]
* @returns {Promise<unknown>}
*/
resp: (fn?: (response: HttpResponse) => unknown, onrejected?: (reason: HttpResponse) => unknown) => Promise<unknown>;
/**
* 转换成 JSON
*
* @returns {HttpResponseData}
*/
toJSON: () => HttpResponseData;
/**
* 响应消息字符串
*
* @returns {string}
*/
toString: () => string;
#private;
}