vite_ts_auto/typings/global.d.ts

75 lines
1.7 KiB
TypeScript

/* Menu */
declare namespace Menu {
interface MenuOptions {
path: string;
name: string;
component?: string | (() => Promise<unknown>);
redirect?: string;
meta: MetaProps;
children?: MenuOptions[];
}
interface MetaProps {
icon: string;
title: string;
activeMenu?: string;
isLink?: string;
isHide: boolean;
isFull: boolean;
isAffix: boolean;
isKeepAlive: boolean;
}
}
/* table */
declare type Key = string | number;
declare type DefaultRecordType = any;
/* FileType */
declare namespace File {
type ImageMimeType = "image/apng" | "image/bmp" | "image/gif" | "image/jpeg" | "image/pjpeg" | "image/png" | "image/svg+xml" | "image/tiff" | "image/webp" | "image/x-icon";
type ExcelMimeType = "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
}
/* Vite */
declare type Recordable<T = any> = Record<string, T>;
declare interface ViteEnv {
VITE_USER_NODE_ENV: "development" | "production" | "test";
VITE_GLOB_APP_TITLE: string;
VITE_PORT: number;
VITE_OPEN: boolean;
VITE_REPORT: boolean;
VITE_BUILD_COMPRESS: "gzip" | "brotli" | "gzip,brotli" | "none";
VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE: boolean;
VITE_DROP_CONSOLE: boolean;
VITE_PWA: boolean;
VITE_PUBLIC_PATH: string;
VITE_API_URL: string;
VITE_PROXY: [string, string][];
}
interface ImportMetaEnv extends ViteEnv {
__: unknown;
}
/* __APP_INFO__ */
declare const __APP_INFO__: {
pkg: {
name: string;
version: string;
dependencies: Recordable<string>;
devDependencies: Recordable<string>;
};
lastBuildTime: string;
};
/* Generic Tools */
type ObjToKeyValUnion<T> = {
[K in keyof T]: { key: K; value: T[K] };
}[keyof T];
type ObjToKeyValArray<T> = {
[K in keyof T]: [K, T[K]];
}[keyof T];