diff --git a/src/components/FormBuilder/FormItemsRenderer.d.ts b/src/components/FormBuilder/FormItemsRenderer.d.ts index c82dda7..570ba8c 100644 --- a/src/components/FormBuilder/FormItemsRenderer.d.ts +++ b/src/components/FormBuilder/FormItemsRenderer.d.ts @@ -209,33 +209,46 @@ export type FormOptionCustomRender< formListUniqueProps?: never; }; +/** + * 根据 render 类型映射生成表单项联合类型 + */ +export type FormOptionByRenderUnion< + Values = any, + AllValues = Values, + IsOnlyForLabel extends boolean = false, + IsCustomizeRender extends boolean = false, + Name = NamePath, + Dependencies = NamePath, +> = { [K in keyof FORM_ITEM_RENDER_TYPE_MAP]: FormOptionByRender }[keyof FORM_ITEM_RENDER_TYPE_MAP]; + +/** + * 表单配置项联合类型组合 + */ +export type FormOptionGroup< + Values = any, + AllValues = Values, + Name = NamePath, + Dependencies = NamePath, +> + = | FormOptionDefault + | FormOptionDefault + | FormOptionDefault + | FormOptionByRenderUnion + | FormOptionByRenderUnion + | FormOptionByRenderUnion + | FormOptionCustomRender + | FormOptionCustomRender + | FormOptionCustomRender; + /** * 普通表单配置项 */ -export type FormOption - = | FormOptionDefault - | FormOptionDefault - | FormOptionDefault - | { [K in keyof FORM_ITEM_RENDER_TYPE_MAP]: FormOptionByRender }[keyof FORM_ITEM_RENDER_TYPE_MAP] - | { [K in keyof FORM_ITEM_RENDER_TYPE_MAP]: FormOptionByRender }[keyof FORM_ITEM_RENDER_TYPE_MAP] - | { [K in keyof FORM_ITEM_RENDER_TYPE_MAP]: FormOptionByRender }[keyof FORM_ITEM_RENDER_TYPE_MAP] - | FormOptionCustomRender - | FormOptionCustomRender - | FormOptionCustomRender; +export type FormOption = FormOptionGroup; /** * Form.List 子项表单配置项 */ -export type FormListOption - = | FormOptionDefault, FormListOptionDependencies> - | FormOptionDefault, FormListOptionDependencies> - | FormOptionDefault, FormListOptionDependencies> - | { [K in keyof FORM_ITEM_RENDER_TYPE_MAP]: FormOptionByRender, FormListOptionDependencies> }[keyof FORM_ITEM_RENDER_TYPE_MAP] - | { [K in keyof FORM_ITEM_RENDER_TYPE_MAP]: FormOptionByRender, FormListOptionDependencies> }[keyof FORM_ITEM_RENDER_TYPE_MAP] - | { [K in keyof FORM_ITEM_RENDER_TYPE_MAP]: FormOptionByRender, FormListOptionDependencies> }[keyof FORM_ITEM_RENDER_TYPE_MAP] - | FormOptionCustomRender, FormListOptionDependencies> - | FormOptionCustomRender, FormListOptionDependencies> - | FormOptionCustomRender, FormListOptionDependencies>; +export type FormListOption = FormOptionGroup, FormListOptionDependencies>; /** * FormItemsRenderer 组件属性