diff --git a/components/form/FormItem/ItemHolder.tsx b/components/form/FormItem/ItemHolder.tsx
index 3f9af59c35d4..d338594325cb 100644
--- a/components/form/FormItem/ItemHolder.tsx
+++ b/components/form/FormItem/ItemHolder.tsx
@@ -186,8 +186,8 @@ export default function ItemHolder(props: ItemHolderProps) {
{/* Label */}
diff --git a/components/form/FormItem/index.tsx b/components/form/FormItem/index.tsx
index 4c0612c18e02..bca2f3d28991 100644
--- a/components/form/FormItem/index.tsx
+++ b/components/form/FormItem/index.tsx
@@ -51,7 +51,7 @@ const MemoInput = React.memo(
);
export interface FormItemProps
- extends FormItemLabelProps,
+ extends Omit,
FormItemInputProps,
RcFieldProps {
prefixCls?: string;
diff --git a/components/form/FormItemLabel.tsx b/components/form/FormItemLabel.tsx
index 89f01ab0b8cc..a8f4dace0edd 100644
--- a/components/form/FormItemLabel.tsx
+++ b/components/form/FormItemLabel.tsx
@@ -38,6 +38,9 @@ export interface FormItemLabelProps {
label?: React.ReactNode;
labelAlign?: FormLabelAlign;
labelCol?: ColProps;
+ /**
+ * @internal Used for pass `requiredMark` from ``
+ */
requiredMark?: RequiredMark;
tooltip?: LabelTooltipType;
}
diff --git a/components/form/__tests__/index.test.tsx b/components/form/__tests__/index.test.tsx
index e7a9cc3860c5..346e0504675b 100644
--- a/components/form/__tests__/index.test.tsx
+++ b/components/form/__tests__/index.test.tsx
@@ -1797,4 +1797,29 @@ describe('Form', () => {
expect(onChange).toHaveBeenNthCalledWith(idx++, 'validating');
expect(onChange).toHaveBeenNthCalledWith(idx++, 'success');
});
+
+ // https://user-images.githubusercontent.com/32004925/230819163-464fe90d-422d-4a6d-9e35-44a25d4c64f1.png
+ it('should not render `requiredMark` when Form.Item has no required prop', () => {
+ // Escaping TypeScript error
+ const genProps = (value: any) => ({ ...value });
+
+ const { container } = render(
+
+
+
+
+
+
+ ,
+ );
+
+ expect(container.querySelectorAll('.ant-form-item-required')).toHaveLength(2);
+ expect(container.querySelectorAll('.ant-form-item-required-mark-optional')).toHaveLength(2);
+ });
});