/** * @program: kicc-ui * @description: 全局定义 * @author: entfrm开发团队-王翔 * @create: 2022/4/10 */ import type { ComponentRenderProxy, VNode, VNodeChild, ComponentPublicInstance, FunctionalComponent, PropType as VuePropType } from 'vue'; declare global { /** vue-type相关 */ declare type PropType = VuePropType; declare type VueNode = VNodeChild | JSX.Element; declare type Nullable = T | null; declare type NonNullable = T extends null | undefined ? never : T; declare type Recordable = Record; declare type ReadonlyRecordable = { readonly [key: string]: T; }; declare type DeepPartial = { [P in keyof T]?: DeepPartial; }; declare type TimeoutHandle = ReturnType; declare type IntervalHandle = ReturnType; interface Window { qiankunStarted: boolean } declare interface ChangeEvent extends Event { target: HTMLInputElement; } declare interface ViteEnv { VITE_PORT: number; VITE_USE_PWA: boolean; VITE_PUBLIC_PATH: string; VITE_PROXY: [string, string][]; VITE_GLOB_APP_TITLE: string; VITE_GLOB_APP_SHORT_NAME: string; VITE_USE_CDN: boolean; VITE_DROP_CONSOLE: boolean; VITE_BUILD_COMPRESS: 'gzip' | 'brotli' | 'none'; VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE: boolean; VITE_LEGACY: boolean; VITE_USE_IMAGEMIN: boolean; VITE_GENERATE_UI: string; } declare function parseInt(s: string | number, radix?: number): number; namespace JSX { type Element = VNode; type ElementClass = ComponentRenderProxy; interface ElementAttributesProperty { $props: any; } interface IntrinsicElements { [elem: string]: any; } interface IntrinsicAttributes { [elem: string]: any; } } } declare module 'vue' { export type JSXComponent = | { new (): ComponentPublicInstance } | FunctionalComponent; }