fix(api): 修复 API 导入导致的 TypeScript 编译错误
- 将所有 API 文件中的 import request from '@/utils/request'替换为 import request from '@/utils/request-legacy'
- 创建了 request-legacy.ts 兼容层,保持与现有 API 代码的完全兼容性
- 支持旧的 API 响应格式 {code, message, data}
- 自动处理认证头和错误处理
- 批量更新了 30+ 个 API 文件的导入路径
- 修复了 TypeScript 编译错误,项目现在可以正常编译和运行
This commit is contained in:
159
types/global.d.ts
vendored
159
types/global.d.ts
vendored
@@ -1,27 +1,160 @@
|
||||
/// <reference types="@tarojs/taro" />
|
||||
|
||||
declare module '*.png';
|
||||
declare module '*.gif';
|
||||
declare module '*.jpg';
|
||||
declare module '*.jpeg';
|
||||
declare module '*.svg';
|
||||
declare module '*.css';
|
||||
declare module '*.less';
|
||||
declare module '*.scss';
|
||||
declare module '*.sass';
|
||||
declare module '*.styl';
|
||||
// 静态资源模块声明
|
||||
declare module '*.png' {
|
||||
const content: string;
|
||||
export default content;
|
||||
}
|
||||
declare module '*.gif' {
|
||||
const content: string;
|
||||
export default content;
|
||||
}
|
||||
declare module '*.jpg' {
|
||||
const content: string;
|
||||
export default content;
|
||||
}
|
||||
declare module '*.jpeg' {
|
||||
const content: string;
|
||||
export default content;
|
||||
}
|
||||
declare module '*.svg' {
|
||||
const content: string;
|
||||
export default content;
|
||||
}
|
||||
declare module '*.css' {
|
||||
const content: Record<string, string>;
|
||||
export default content;
|
||||
}
|
||||
declare module '*.less' {
|
||||
const content: Record<string, string>;
|
||||
export default content;
|
||||
}
|
||||
declare module '*.scss' {
|
||||
const content: Record<string, string>;
|
||||
export default content;
|
||||
}
|
||||
declare module '*.sass' {
|
||||
const content: Record<string, string>;
|
||||
export default content;
|
||||
}
|
||||
declare module '*.styl' {
|
||||
const content: Record<string, string>;
|
||||
export default content;
|
||||
}
|
||||
|
||||
// 环境变量类型定义
|
||||
declare namespace NodeJS {
|
||||
interface ProcessEnv {
|
||||
/** NODE 内置环境变量, 会影响到最终构建生成产物 */
|
||||
NODE_ENV: 'development' | 'production',
|
||||
NODE_ENV: 'development' | 'production' | 'test';
|
||||
/** 当前构建的平台 */
|
||||
TARO_ENV: 'weapp' | 'swan' | 'alipay' | 'h5' | 'rn' | 'tt' | 'quickapp' | 'qq' | 'jd'
|
||||
TARO_ENV: 'weapp' | 'swan' | 'alipay' | 'h5' | 'rn' | 'tt' | 'quickapp' | 'qq' | 'jd';
|
||||
/**
|
||||
* 当前构建的小程序 appid
|
||||
* @description 若不同环境有不同的小程序,可通过在 env 文件中配置环境变量`TARO_APP_ID`来方便快速切换 appid, 而不必手动去修改 dist/project.config.json 文件
|
||||
* @see https://taro-docs.jd.com/docs/next/env-mode-config#特殊环境变量-taro_app_id
|
||||
*/
|
||||
TARO_APP_ID: string
|
||||
TARO_APP_ID: string;
|
||||
/** API基础URL */
|
||||
API_BASE_URL?: string;
|
||||
/** 应用名称 */
|
||||
APP_NAME?: string;
|
||||
/** 调试模式 */
|
||||
DEBUG?: string;
|
||||
}
|
||||
}
|
||||
|
||||
// 全局常量类型定义
|
||||
declare const API_BASE_URL: string;
|
||||
declare const APP_NAME: string;
|
||||
declare const DEBUG: string;
|
||||
|
||||
// 基础类型定义
|
||||
declare global {
|
||||
/** 通用ID类型 */
|
||||
type ID = string | number;
|
||||
|
||||
/** 时间戳类型 */
|
||||
type Timestamp = number;
|
||||
|
||||
/** 可选的字符串或数字 */
|
||||
type StringOrNumber = string | number;
|
||||
|
||||
/** 分页参数基础类型 */
|
||||
interface BasePaginationParams {
|
||||
page?: number;
|
||||
limit?: number;
|
||||
sort?: string;
|
||||
order?: 'asc' | 'desc';
|
||||
}
|
||||
|
||||
/** 分页响应基础类型 */
|
||||
interface BasePaginationResponse<T = any> {
|
||||
list: T[];
|
||||
count: number;
|
||||
page?: number;
|
||||
limit?: number;
|
||||
totalPages?: number;
|
||||
}
|
||||
|
||||
/** API响应基础类型 */
|
||||
interface BaseApiResponse<T = any> {
|
||||
code: number;
|
||||
message?: string;
|
||||
data?: T;
|
||||
timestamp?: Timestamp;
|
||||
}
|
||||
|
||||
/** 基础实体类型 */
|
||||
interface BaseEntity {
|
||||
id?: ID;
|
||||
createTime?: string;
|
||||
updateTime?: string;
|
||||
createBy?: string;
|
||||
updateBy?: string;
|
||||
}
|
||||
|
||||
/** 树形结构基础类型 */
|
||||
interface BaseTreeNode<T = any> {
|
||||
id: ID;
|
||||
parentId?: ID;
|
||||
children?: T[];
|
||||
level?: number;
|
||||
}
|
||||
|
||||
/** 选项类型 */
|
||||
interface Option<T = StringOrNumber> {
|
||||
label: string;
|
||||
value: T;
|
||||
disabled?: boolean;
|
||||
children?: Option<T>[];
|
||||
}
|
||||
|
||||
/** 文件上传类型 */
|
||||
interface UploadFile {
|
||||
uid: string;
|
||||
name: string;
|
||||
status: 'uploading' | 'done' | 'error';
|
||||
url?: string;
|
||||
size?: number;
|
||||
type?: string;
|
||||
}
|
||||
|
||||
/** 地址信息类型 */
|
||||
interface AddressInfo {
|
||||
province: string;
|
||||
city: string;
|
||||
district: string;
|
||||
detail: string;
|
||||
postalCode?: string;
|
||||
longitude?: number;
|
||||
latitude?: number;
|
||||
}
|
||||
|
||||
/** 联系信息类型 */
|
||||
interface ContactInfo {
|
||||
name: string;
|
||||
phone: string;
|
||||
email?: string;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user