| | |
| | | declare interface Fn<T = any, R = T> { |
| | | (...arg: T[]): R; |
| | | 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>; |
| | | // } |
| | | |
| | | // fix FullScreen type error |
| | | interface Document { |
| | | mozFullScreenElement?: Element; |
| | | msFullscreenElement?: Element; |
| | | webkitFullscreenElement?: 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_USE_MOCK: boolean; |
| | | VITE_PUBLIC_PATH: string; |
| | | VITE_GLOB_APP_TITLE: string; |
| | | VITE_BUILD_COMPRESS: 'gzip' | 'brotli' | 'none'; |
| | | } |
| | | |
| | | 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 interface PromiseFn<T = any, R = T> { |
| | | (...arg: T[]): Promise<R>; |
| | | declare module 'vue' { |
| | | export type JSXComponent<Props = any> = |
| | | | { new (): ComponentPublicInstance<Props> } |
| | | | FunctionalComponent<Props>; |
| | | } |
| | | |
| | | declare interface IObj<T = any> { |
| | | [key: string]: T; |
| | | [key: number]: T; |
| | | } |
| | | |
| | | declare function parseInt(s: string | number, radix?: number): number; |
| | | |
| | | declare function parseFloat(string: string | number): number; |
| | | |
| | | declare type Nullable<T> = T | null; |
| | | |
| | | declare type NonNullable<T> = T extends null | undefined ? never : T; |
| | | |
| | | declare type RefType<T> = T | null; |
| | | |
| | | declare type CustomizedHTMLElement<T> = HTMLElement & T; |
| | | |
| | | declare type Indexable<T extends any = any> = { |
| | | [key: string]: T; |
| | | }; |
| | | |
| | | declare type Recordable<T extends any = any> = Record<string, T>; |
| | | |
| | | declare type ReadonlyRecordable<T extends any = any> = { |
| | | readonly [key: string]: T; |
| | | }; |
| | | |
| | | declare type Hash<T> = Indexable<T>; |
| | | |
| | | declare type DeepPartial<T> = { |
| | | [P in keyof T]?: DeepPartial<T[P]>; |
| | | }; |
| | | |
| | | declare type LabelValueOptions = { |
| | | label: string; |
| | | value: any; |
| | | }[]; |
| | | |
| | | declare type EmitType = (event: string, ...args: any[]) => void; |
| | | |
| | | declare type TargetContext = '_self' | '_blank'; |
| | | |
| | | declare type TimeoutHandle = ReturnType<typeof setTimeout>; |
| | | |
| | | declare type IntervalHandle = ReturnType<typeof setInterval>; |
| | | |
| | | declare interface ComponentElRef<T extends HTMLElement = HTMLDivElement> { |
| | | $el: T; |
| | | } |
| | | |
| | | declare type ComponentRef<T extends HTMLElement = HTMLDivElement> = ComponentElRef<T> | null; |
| | | |
| | | declare type ElRef<T extends HTMLElement = HTMLDivElement> = Nullable<T>; |
| | | |
| | | type IsSame<A, B> = A | B extends A & B ? true : false; |