import type { FormItemRule as _FormItemRule } from 'element-plus'; import type { Ref, UnwrapRef } from 'vue'; export type AnyObject = Record; export type Awaitable = Promise | T; export type Nullable = T | null; export type Arrayable = T | T[]; export interface Fn { (...arg: T[]): R; } export type FormRules = Partial>>; export type FormItemRule = _FormItemRule; export type MaybeRef = Ref> | T; export type EmitType = (event: string, ...args: any[]) => void; /** * @description 浅层的RecordRef */ export type MaybeShallowRecordRef = { [P in keyof T]: MaybeRef; }; /** * @description 深层的RecordRef */ export type MaybeRecordRef = { [P in keyof T]: T[P] extends AnyObject ? MaybeRecordRef : MaybeRef; };