declare interface Fn { (...arg: T[]): R; } declare interface PromiseFn { (...arg: T[]): Promise; } declare type RefType = T | null; declare type LabelValueOptions = { label: string; value: any; [key: string]: string | number | boolean; }[]; declare type EmitType = (event: string, ...args: any[]) => void; declare type TargetContext = '_self' | '_blank'; declare interface ComponentElRef { $el: T; } /** 将联合类型转为交叉类型 */ declare type UnionToIntersection = (U extends any ? (k: U) => void : never) extends ( k: infer I, ) => void ? I : never; declare type ComponentRef = ComponentElRef | null; declare type ElRef = Nullable;