UNPKG

@vue-ui-kit/ant

Version:

Vue3 UI Kit based on Ant Design

134 lines (120 loc) 2.65 kB
//<editor-fold desc="👇全局类型补丁,不需要引用👇"> declare type Recordable<T = any> = Record<string, T>; type PartialByKeys<T, K extends keyof T = keyof T> = Omit<T, K & keyof T> & Partial<Pick<T, K & keyof T>> extends infer U ? { [K in keyof U]: U[K] } : never; type DeepPick<T extends Record<string, any>, U extends string> = ( U extends string ? U extends `${infer F}.${infer R}` ? (arg: { [K in F]: DeepPick<T[F], R>; }) => void : U extends keyof T ? (arg: Pick<T, U>) => void : (arg: unknown) => void : never ) extends (arg: infer Z) => void ? Z : never; //选项类型 interface IOption<T = any> { value: T; label: string; color?: string; } interface OptionGroup<T> { label?: string; options: IOption<T>[]; } //树形结构类型 type ITreeAble<T, U = void> = U extends void ? T & { children?: ITreeAble<T>[] } : U extends string ? T & { [key in U]?: ITreeAble<T, U>[] } : T; declare type WrapID<T extends Recordable> = { readonly id: string | number; } & { [K in keyof T]: T[K] }; declare type TimeoutHandle = ReturnType<typeof window.setTimeout>; declare type IntervalHandle = ReturnType<typeof window.setInterval>; declare type GrowToSize<T, N extends number, A extends T[]> = A['length'] extends N ? A : GrowToSize<T, N, [...A, T]>; declare type FixedArray<T, N extends number> = GrowToSize<T, N, []>; interface IPage { /** * 第几页 */ page: number; /** * 一页显示的数量 */ size: number; } interface WrapList<T> { /** * 列表 */ list: T[]; } interface WrapPage<T> { /** * 列表 */ list: T[]; /** * 当前页码 */ page: number; /** * 总页数 */ pages?: string[]; /** * 每页数量 */ size: number; /** * 总数量 */ total: number; } interface ISchema { id: number; /** * 操作人 */ operator?: string; /** * 创建人 */ create_by?: string; /** * 更新人 */ update_by?: string; /** * 更新时间 */ update_time?: number; /** * 创建时间 */ create_time?: number; /** * 创建人 */ creator?: string; } declare module '*.vue' { import type { DefineComponent } from 'vue' // biome-ignore lint/complexity/noBannedTypes: reason const component: DefineComponent<{}, {}, any> export default component } declare module '*.png'; declare module '*.svg'; declare module '*.jpeg'; declare module '*.jpg'; //</editor-fold>