diff --git a/src/components/Form/src/components/FormItem.vue b/src/components/Form/src/components/FormItem.vue
index 0ef96fd3..c165585f 100644
--- a/src/components/Form/src/components/FormItem.vue
+++ b/src/components/Form/src/components/FormItem.vue
@@ -200,9 +200,6 @@ export default defineComponent({
           rule.required = false
 
         if (component) {
-          if (!Reflect.has(rule, 'type'))
-            rule.type = component === 'InputNumber' ? 'number' : 'string'
-
           rule.message = rule.message || defaultMsg
 
           if (component.includes('Input') || component.includes('Textarea'))
diff --git a/src/components/Form/src/helper.ts b/src/components/Form/src/helper.ts
index 604289d0..174ab298 100644
--- a/src/components/Form/src/helper.ts
+++ b/src/components/Form/src/helper.ts
@@ -36,6 +36,9 @@ function genType() {
 }
 
 export function setComponentRuleType(rule: Rule, component: ComponentType, valueFormat: string) {
+  if (Reflect.has(rule, 'type'))
+    return
+
   if (['DatePicker', 'MonthPicker', 'WeekPicker', 'TimePicker'].includes(component))
     rule.type = valueFormat ? 'string' : 'object'
   else if (['RangePicker', 'Upload', 'CheckboxGroup', 'TimePicker'].includes(component))