|
@@ -1,14 +1,17 @@
|
|
|
-import { isArray, isObject } from "@/helper/utils";
|
|
|
+const fieldType = {
|
|
|
+ "[object Object]": {},
|
|
|
+ "[object Array]": [],
|
|
|
+ "[object Number]": "",
|
|
|
+ "[object String]": "",
|
|
|
+ "[object Boolean]": false,
|
|
|
+};
|
|
|
|
|
|
const useReset = <T extends Record<string, any>>(fields: T): T => {
|
|
|
+ const typeString = Object.prototype.toString;
|
|
|
+
|
|
|
Object.keys(fields).forEach((field) => {
|
|
|
- let fieldValue = fields[field];
|
|
|
- if (isObject(fieldValue)) fieldValue = {};
|
|
|
- else if (isArray(fieldValue)) fieldValue = [];
|
|
|
- else if (typeof fieldValue === "string" || typeof fieldValue === "number")
|
|
|
- fieldValue = "";
|
|
|
- else if (typeof fieldValue === "boolean") fieldValue = false;
|
|
|
- (fields[field] as T[keyof T]) = fieldValue;
|
|
|
+ const type = typeString.call(fields[field] as T[keyof T]);
|
|
|
+ (fields[field] as T[keyof T]) = (<Record<string, any>>fieldType)[type];
|
|
|
});
|
|
|
|
|
|
return fields as T;
|