From f55c0bd445b43dafccbcae7a1f32dbc78bd2e60f Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期三, 19 六月 2024 10:48:04 +0800
Subject: [PATCH] 登录更新

---
 src/utils/props.ts |   58 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/src/utils/props.ts b/src/utils/props.ts
index 00b364d..79060bf 100644
--- a/src/utils/props.ts
+++ b/src/utils/props.ts
@@ -14,9 +14,8 @@
   key: { type: T; required: true };
 }>['key'];
 type ResolvePropType<T> = ResolveProp<T> extends { type: infer V } ? V : ResolveProp<T>;
-type ResolvePropTypeWithReadonly<T> = Readonly<T> extends Readonly<Array<infer A>>
-  ? ResolvePropType<A[]>
-  : ResolvePropType<T>;
+type ResolvePropTypeWithReadonly<T> =
+  Readonly<T> extends Readonly<Array<infer A>> ? ResolvePropType<A[]> : ResolvePropType<T>;
 
 type IfUnknown<T, V> = [unknown] extends [T] ? V : T;
 
@@ -27,8 +26,8 @@
   default?: R extends true
     ? never
     : D extends Record<string, unknown> | Array<any>
-    ? () => D
-    : (() => D) | D;
+      ? () => D
+      : (() => D) | D;
   validator?: ((val: any) => val is C) | ((val: any) => boolean);
 };
 
@@ -36,8 +35,8 @@
   | (T extends PropWrapper<unknown>
       ? T[typeof wrapperKey]
       : [V] extends [never]
-      ? ResolvePropTypeWithReadonly<T>
-      : never)
+        ? ResolvePropTypeWithReadonly<T>
+        : never)
   | V
   | C;
 export type BuildPropType<T, V, C> = _BuildPropType<
@@ -52,8 +51,8 @@
 ]
   ? D
   : D extends () => T
-  ? ReturnType<D>
-  : D;
+    ? ReturnType<D>
+    : D;
 
 export type BuildPropDefault<T, D, R> = R extends true
   ? { readonly default?: undefined }
@@ -129,7 +128,7 @@
 
   return {
     type:
-      typeof type === 'object' && Object.getOwnPropertySymbols(type).includes(wrapperKey)
+      typeof type === 'object' && Object.getOwnPropertySymbols(type).includes(wrapperKey) && type
         ? type[wrapperKey]
         : type,
     required: !!required,
@@ -146,12 +145,12 @@
     [K in keyof O]: O[K] extends BuildPropReturn<any, any, any, any, any>
       ? O[K]
       : [O[K]] extends NativePropType
-      ? O[K]
-      : O[K] extends BuildPropOption<infer T, infer D, infer R, infer V, infer C>
-      ? D extends BuildPropType<T, V, C>
-        ? BuildPropOption<T, D, R, V, C>
-        : never
-      : never;
+        ? O[K]
+        : O[K] extends BuildPropOption<infer T, infer D, infer R, infer V, infer C>
+          ? D extends BuildPropType<T, V, C>
+            ? BuildPropOption<T, D, R, V, C>
+            : never
+          : never;
   },
 >(
   props: O,
@@ -162,22 +161,23 @@
     [K in keyof O]: O[K] extends { [propKey]: boolean }
       ? O[K]
       : [O[K]] extends NativePropType
-      ? O[K]
-      : O[K] extends BuildPropOption<
-          infer T,
-          // eslint-disable-next-line @typescript-eslint/no-unused-vars
-          infer _D,
-          infer R,
-          infer V,
-          infer C
-        >
-      ? BuildPropReturn<T, O[K]['default'], R, V, C>
-      : never;
+        ? O[K]
+        : O[K] extends BuildPropOption<
+              infer T,
+              // eslint-disable-next-line @typescript-eslint/no-unused-vars
+              infer _D,
+              infer R,
+              infer V,
+              infer C
+            >
+          ? BuildPropReturn<T, O[K]['default'], R, V, C>
+          : never;
   };
 
-export const definePropType = <T>(val: any) => ({ [wrapperKey]: val } as PropWrapper<T>);
+export const definePropType = <T>(val: any) => ({ [wrapperKey]: val }) as PropWrapper<T>;
 
-export const keyOf = <T>(arr: T) => Object.keys(arr) as Array<keyof T>;
+export const keyOf = <T extends object>(arr: T) => Object.keys(arr) as Array<keyof T>;
+
 export const mutable = <T extends readonly any[] | Record<string, unknown>>(val: T) =>
   val as Mutable<typeof val>;
 

--
Gitblit v1.9.3