/** * 从各种错误对象中提取错误信息 * @param error 错误对象 * @returns 提取的错误信息字符串 */ export const extractErrorMessage = (error: unknown): string => { if (!error) return ""; if (typeof error === "string") { return error; } if (error instanceof Error && error.message.trim()) { return error.message; } if (typeof error === "object") { const errObject = error as Record; const candidate = errObject.message ?? errObject.error ?? errObject.detail; if (typeof candidate === "string" && candidate.trim()) { return candidate; } const payload = errObject.payload; if (typeof payload === "string" && payload.trim()) { return payload; } if (payload && typeof payload === "object") { const payloadObj = payload as Record; const payloadCandidate = payloadObj.message ?? payloadObj.error ?? payloadObj.detail; if (typeof payloadCandidate === "string" && payloadCandidate.trim()) { return payloadCandidate; } } } return ""; };