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.
92 lines
2.5 KiB
92 lines
2.5 KiB
import type { ComponentRenderProxy, VNode, VNodeChild, ComponentPublicInstance, FunctionalComponent, PropType as VuePropType } from 'vue'; |
|
|
|
declare global { |
|
const __APP_INFO__: { |
|
pkg: { |
|
name: string; |
|
version: string; |
|
dependencies: Recordable<string>; |
|
devDependencies: Recordable<string>; |
|
}; |
|
lastBuildTime: string; |
|
}; |
|
// declare interface Window { |
|
// // Global vue app instance |
|
// __APP__: App<Element>; |
|
// } |
|
|
|
// vue |
|
declare type PropType<T> = VuePropType<T>; |
|
declare type VueNode = VNodeChild | JSX.Element; |
|
|
|
export type Writable<T> = { |
|
-readonly [P in keyof T]: T[P]; |
|
}; |
|
|
|
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 Indexable<T = any> = { |
|
[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 WheelEvent { |
|
path?: EventTarget[]; |
|
} |
|
interface ImportMetaEnv extends ViteEnv { |
|
__: unknown; |
|
} |
|
|
|
declare interface ViteEnv { |
|
VITE_PORT: number; |
|
VITE_USE_MOCK: boolean; |
|
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; |
|
|
|
declare function parseFloat(string: string | number): number; |
|
|
|
namespace JSX { |
|
// tslint:disable no-empty-interface |
|
type Element = VNode; |
|
// tslint:disable no-empty-interface |
|
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>; |
|
}
|
|
|