瀏覽代碼

refactor(types): simplify `EmitsToProps` types (#9788)

丶远方 2 年之前
父節點
當前提交
a6503e3e77
共有 1 個文件被更改,包括 8 次插入9 次删除
  1. 8 9
      packages/runtime-core/src/componentEmits.ts

+ 8 - 9
packages/runtime-core/src/componentEmits.ts

@@ -38,19 +38,18 @@ export type EmitsOptions = ObjectEmitsOptions | string[]
 
 export type EmitsToProps<T extends EmitsOptions> = T extends string[]
   ? {
-      [K in string & `on${Capitalize<T[number]>}`]?: (...args: any[]) => any
+      [K in `on${Capitalize<T[number]>}`]?: (...args: any[]) => any
     }
   : T extends ObjectEmitsOptions
     ? {
-        [K in string &
-          `on${Capitalize<string & keyof T>}`]?: K extends `on${infer C}`
-          ? T[Uncapitalize<C>] extends null
-            ? (...args: any[]) => any
-            : (
-                ...args: T[Uncapitalize<C>] extends (...args: infer P) => any
-                  ? P
+        [K in `on${Capitalize<string & keyof T>}`]?: K extends `on${infer C}`
+          ? (
+              ...args: T[Uncapitalize<C>] extends (...args: infer P) => any
+                ? P
+                : T[Uncapitalize<C>] extends null
+                  ? any[]
                   : never
-              ) => any
+            ) => any
           : never
       }
     : {}