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.
73 lines
1.9 KiB
73 lines
1.9 KiB
/** |
|
* @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<T> = VuePropType<T>; |
|
declare type VueNode = VNodeChild | JSX.Element; |
|
|
|
declare type Nullable<T> = T | null; |
|
declare type NonNullable<T> = T extends null | undefined ? never : T; |
|
declare type Recordable<T = any> = Record<string, T>; |
|
declare type ReadonlyRecordable<T = any> = { |
|
readonly [key: string]: T; |
|
}; |
|
|
|
|
|
declare type DeepPartial<T> = { |
|
[P in keyof T]?: DeepPartial<T[P]>; |
|
}; |
|
|
|
declare type TimeoutHandle = ReturnType<typeof setTimeout>; |
|
|
|
declare type IntervalHandle = ReturnType<typeof setInterval>; |
|
|
|
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<Props = any> = |
|
| { new (): ComponentPublicInstance<Props> } |
|
| FunctionalComponent<Props>; |
|
}
|
|
|