Przeglądaj źródła

feat(types): expose `ToRefs` type (#1037)

Carlos Rodrigues 6 lat temu
rodzic
commit
28b4c317b4

+ 2 - 1
packages/reactivity/src/index.ts

@@ -8,7 +8,8 @@ export {
   customRef,
   triggerRef,
   Ref,
-  UnwrapRef
+  UnwrapRef,
+  ToRefs
 } from './ref'
 export {
   reactive,

+ 3 - 3
packages/reactivity/src/ref.ts

@@ -20,6 +20,8 @@ export interface Ref<T = any> {
   value: T
 }
 
+export type ToRefs<T = any> = { [K in keyof T]: Ref<T[K]> }
+
 const convert = <T extends unknown>(val: T): T =>
   isObject(val) ? reactive(val) : val
 
@@ -108,9 +110,7 @@ export function customRef<T>(factory: CustomRefFactory<T>): Ref<T> {
   return r as any
 }
 
-export function toRefs<T extends object>(
-  object: T
-): { [K in keyof T]: Ref<T[K]> } {
+export function toRefs<T extends object>(object: T): ToRefs<T> {
   if (__DEV__ && !isProxy(object)) {
     console.warn(`toRefs() expects a reactive object but received a plain one.`)
   }

+ 2 - 1
packages/runtime-core/src/index.ts

@@ -153,7 +153,8 @@ export {
   Ref,
   ComputedRef,
   UnwrapRef,
-  WritableComputedOptions
+  WritableComputedOptions,
+  ToRefs
 } from '@vue/reactivity'
 export {
   // types