import { FormInstance, FormRules } from 'element-plus'; import { ShallowRef, Ref } from 'vue'; type UseFormHooksOptions< M = Record, S extends any[] > = { // 表单ref名称 ref?: string | ShallowRef // 表单对象 form?: M | Ref // 表单验证规则 rules?: FormRules // 提交实现方法 submit?(...args: S): Promise | void } type UseFormHooksExample< M = Record, S extends any[] > = { // 表单实例 ref: ShallowRef // 响应式表单对象 form: Ref // 表单验证规则 rules: FormRules // 提交 submit(...args: S): void // 重置表单 resetFields(): void // 清除表单验证 clearValidate(props?: Parameters[0]): void } type _UseFormHooksOptions< M = Record, S extends any[] > = UseFormHooksOptions & { beforeSubmit?(): Promise } type _UseFormHooksExample< M = Record, S extends any[] > = UseFormHooksExample & { _option: _UseFormHooksOptions }