You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
160 lines
3.5 KiB
160 lines
3.5 KiB
/// <reference types="@tarojs/taro" />
|
|
|
|
// 静态资源模块声明
|
|
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' | 'test';
|
|
/** 当前构建的平台 */
|
|
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;
|
|
/** 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;
|
|
}
|
|
}
|