declare interface Fn<T = any, R = T> { (...arg: T[]): R } declare interface PromiseFn<T = any, R = T> { (...arg: T[]): Promise<R> } declare type RefType<T> = T | null // 就是数组里的 value 是这个对象类型 declare type LabelValueOptions = { label: string value: any disabled: boolean [key: string]: string | number | boolean }[] declare type EmitType = (event: string, ...args: any[]) => void declare type TargetContext = '_self' | '_blank' 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>