]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix(types): improve defineProps return type with generic arguments
authorEvan You <yyx990803@gmail.com>
Wed, 5 Apr 2023 09:18:11 +0000 (17:18 +0800)
committerEvan You <yyx990803@gmail.com>
Wed, 5 Apr 2023 09:21:31 +0000 (17:21 +0800)
packages/runtime-core/src/apiSetupHelpers.ts

index 1927d13bbd4da3dd59b9d64b466ae74fa816482b..1c60416c6eae493e0a1ecfb5de8b88d0d4279daa 100644 (file)
@@ -76,7 +76,7 @@ export function defineProps<
   PP extends ComponentObjectPropsOptions = ComponentObjectPropsOptions
 >(props: PP): Prettify<Readonly<ExtractPropTypes<PP>>>
 // overload 3: typed-based declaration
-export function defineProps<TypeProps>(): ResolveProps<TypeProps>
+export function defineProps<TypeProps>(): DefineProps<TypeProps>
 // implementation
 export function defineProps() {
   if (__DEV__) {
@@ -85,13 +85,9 @@ export function defineProps() {
   return null as any
 }
 
-type ResolveProps<T, BooleanKeys extends keyof T = BooleanKey<T>> = Prettify<
-  Readonly<
-    T & {
-      [K in BooleanKeys]-?: boolean
-    }
-  >
->
+type DefineProps<T> = Readonly<T> & {
+  readonly [K in BooleanKey<T>]-?: boolean
+}
 
 type BooleanKey<T, K extends keyof T = keyof T> = K extends any
   ? [T[K]] extends [boolean | undefined]