94 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
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 | JSX.IntrinsicElements;
 | 
						||
 | 
						||
  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_PUBLIC_PATH: string;
 | 
						||
    VITE_PROXY: [string, string][];
 | 
						||
    VITE_GLOB_APP_TITLE: string;
 | 
						||
    VITE_GLOB_APP_SHORT_NAME: string;
 | 
						||
    VITE_USE_CDN: boolean;
 | 
						||
    VITE_BUILD_COMPRESS: 'gzip' | 'brotli' | 'none';
 | 
						||
    VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE: boolean;
 | 
						||
    // 【CPTE作为乾坤子应用】乾坤子应用名,主应用注册时AppName需保持一致
 | 
						||
    VITE_GLOB_QIANKUN_MICRO_APP_NAME?: string;
 | 
						||
    // 【CPTE作为乾坤子应用】非必填,需与qiankun主应用注册子应用时填写的 entry 保持一致
 | 
						||
    VITE_GLOB_QIANKUN_MICRO_APP_ENTRY?: string;
 | 
						||
    // 当前运行在什么平台
 | 
						||
    VITE_GLOB_RUN_PLATFORM?: 'web' | 'electron';
 | 
						||
  }
 | 
						||
 | 
						||
  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>;
 | 
						||
}
 |