- ErrorBoundary 组件:全局错误捕获与优雅降级 - 提取 5 个自定义 hooks:useCountUp, useDarkMode, useDebouncedValue, usePaginatedData, useApiRequest - 从 11 个 API 文件提取 PaginatedResponse 共享类型到 api/types.ts - 统一 API 错误处理(api/errors.ts) - client.ts 迁移到 axios adapter 模式(替代废弃的 CancelToken) - 添加 react-i18next 国际化基础设施 + zh-CN 语言包
9 lines
359 B
TypeScript
9 lines
359 B
TypeScript
export function extractErrorMessage(err: unknown, fallback = '操作失败'): string {
|
|
if (err && typeof err === 'object' && 'response' in err) {
|
|
const resp = (err as { response?: { data?: { message?: string } } }).response;
|
|
if (resp?.data?.message) return resp.data.message;
|
|
}
|
|
if (err instanceof Error) return err.message;
|
|
return fallback;
|
|
}
|