|
@@ -127,20 +127,21 @@ export function defineExpose(exposed?: Record<string, any>) {
|
|
|
type NotUndefined<T> = T extends undefined ? never : T
|
|
type NotUndefined<T> = T extends undefined ? never : T
|
|
|
|
|
|
|
|
type InferDefaults<T> = {
|
|
type InferDefaults<T> = {
|
|
|
- [K in keyof T]?: NotUndefined<T[K]> extends
|
|
|
|
|
- | number
|
|
|
|
|
- | string
|
|
|
|
|
- | boolean
|
|
|
|
|
- | symbol
|
|
|
|
|
- | Function
|
|
|
|
|
- ? NotUndefined<T[K]>
|
|
|
|
|
- : (props: T) => NotUndefined<T[K]>
|
|
|
|
|
|
|
+ [K in keyof T]?: InferDefault<T, NotUndefined<T[K]>>
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-type PropsWithDefaults<Base, Defaults> = Base &
|
|
|
|
|
- {
|
|
|
|
|
- [K in keyof Defaults]: K extends keyof Base ? NotUndefined<Base[K]> : never
|
|
|
|
|
- }
|
|
|
|
|
|
|
+type InferDefault<P, T> = T extends
|
|
|
|
|
+ | number
|
|
|
|
|
+ | string
|
|
|
|
|
+ | boolean
|
|
|
|
|
+ | symbol
|
|
|
|
|
+ | Function
|
|
|
|
|
+ ? T
|
|
|
|
|
+ : (props: P) => T
|
|
|
|
|
+
|
|
|
|
|
+type PropsWithDefaults<Base, Defaults> = Base & {
|
|
|
|
|
+ [K in keyof Defaults]: K extends keyof Base ? NotUndefined<Base[K]> : never
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* Vue `<script setup>` compiler macro for providing props default values when
|
|
* Vue `<script setup>` compiler macro for providing props default values when
|