From 08a81e433bbc5aeb4b9eddc62a24d73628a4af2d Mon Sep 17 00:00:00 2001 From: feige996 <1020102647@qq.com> Date: Tue, 23 Sep 2025 14:56:45 +0800 Subject: [PATCH] =?UTF-8?q?refactor(http):=20=E6=94=B9=E8=BF=9B=E5=93=8D?= =?UTF-8?q?=E5=BA=94=E7=B1=BB=E5=9E=8B=E5=85=BC=E5=AE=B9=E6=80=A7=E5=B9=B6?= =?UTF-8?q?=E5=A4=84=E7=90=86=E5=A4=9A=E7=A7=8D=E6=B6=88=E6=81=AF=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改 IResponse 接口为联合类型以兼容不同后端返回格式(message/msg) 在错误处理中同时检查 message 和 msg 字段 --- src/http/http.ts | 4 ++-- src/http/types.ts | 13 +++++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/http/http.ts b/src/http/http.ts index 953bdbd..2e1dd4a 100644 --- a/src/http/http.ts +++ b/src/http/http.ts @@ -24,10 +24,10 @@ export function http(options: CustomRequestOptions) { // 状态码 2xx,参考 axios 的设计 if (res.statusCode >= 200 && res.statusCode < 300) { // 2.1 处理业务逻辑错误 - const { code, message, data } = res.data as IResponse + const { code, message, msg, data } = res.data as IResponse // 0和200当做成功都很普遍,这里直接兼容两者,见 ResultEnum if (code !== ResultEnum.Success0 && code !== ResultEnum.Success200) { - throw new Error(`请求错误[${code}]:${message}`) + throw new Error(`请求错误[${code}]:${message || msg}`) } return resolve(data as T) } diff --git a/src/http/types.ts b/src/http/types.ts index a622e0b..42ac8e9 100644 --- a/src/http/types.ts +++ b/src/http/types.ts @@ -12,12 +12,17 @@ export interface HttpRequestResult { requestTask: UniApp.RequestTask } -// 通用响应格式 -export interface IResponse { - code: number | string +// 通用响应格式(兼容 msg + message 字段) +export type IResponse = { + code: number data: T message: string - status: string | number + [key: string]: any // 允许额外属性 +} | { + code: number + data: T + msg: string + [key: string]: any // 允许额外属性 } // 分页请求参数