From a4876f49e5c37038b0d19601231b886a402800f1 Mon Sep 17 00:00:00 2001 From: zhangenming <282126346@qq.com> Date: Sat, 21 Aug 2021 14:46:24 +0800 Subject: [PATCH 1/2] types(reactivity): delete didn't used export. --- packages/reactivity/src/effect.ts | 2 +- packages/reactivity/src/ref.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/reactivity/src/effect.ts b/packages/reactivity/src/effect.ts index 231e15e60e1..7a9f66cfb20 100644 --- a/packages/reactivity/src/effect.ts +++ b/packages/reactivity/src/effect.ts @@ -35,7 +35,7 @@ export type DebuggerEvent = { effect: ReactiveEffect } & DebuggerEventExtraInfo -export type DebuggerEventExtraInfo = { +type DebuggerEventExtraInfo = { target: object type: TrackOpTypes | TriggerOpTypes key: any diff --git a/packages/reactivity/src/ref.ts b/packages/reactivity/src/ref.ts index 0747f8e1314..9e595968070 100644 --- a/packages/reactivity/src/ref.ts +++ b/packages/reactivity/src/ref.ts @@ -5,7 +5,7 @@ import { reactive, isProxy, toRaw, isReactive } from './reactive' import { CollectionTypes } from './collectionHandlers' import { createDep, Dep } from './dep' -export declare const RefSymbol: unique symbol +declare const RefSymbol: unique symbol export interface Ref { value: T @@ -60,7 +60,7 @@ export function triggerRefValue(ref: RefBase, newVal?: any) { } } -export type ToRef = [T] extends [Ref] ? T : Ref> +type ToRef = [T] extends [Ref] ? T : Ref> export type ToRefs = { // #2687: somehow using ToRef here turns the resulting type into // a union of multiple Ref<*> types instead of a single Ref<* | *> type. @@ -154,7 +154,7 @@ export function proxyRefs( : new Proxy(objectWithRefs, shallowUnwrapHandlers) } -export type CustomRefFactory = ( +type CustomRefFactory = ( track: () => void, trigger: () => void ) => { From 85d2af60cd7642d52f1ab14486f5010669ec42b6 Mon Sep 17 00:00:00 2001 From: zhangenming <282126346@qq.com> Date: Tue, 24 Aug 2021 10:51:02 +0800 Subject: [PATCH 2/2] types(reactivity): amend... --- packages/reactivity/src/effect.ts | 2 +- packages/reactivity/src/index.ts | 4 +++- packages/reactivity/src/ref.ts | 13 ++++++------- packages/runtime-core/src/index.ts | 5 +++-- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/packages/reactivity/src/effect.ts b/packages/reactivity/src/effect.ts index 7a9f66cfb20..231e15e60e1 100644 --- a/packages/reactivity/src/effect.ts +++ b/packages/reactivity/src/effect.ts @@ -35,7 +35,7 @@ export type DebuggerEvent = { effect: ReactiveEffect } & DebuggerEventExtraInfo -type DebuggerEventExtraInfo = { +export type DebuggerEventExtraInfo = { target: object type: TrackOpTypes | TriggerOpTypes key: any diff --git a/packages/reactivity/src/index.ts b/packages/reactivity/src/index.ts index d26e87de9a8..b15f4d807be 100644 --- a/packages/reactivity/src/index.ts +++ b/packages/reactivity/src/index.ts @@ -9,6 +9,7 @@ export { customRef, triggerRef, Ref, + ToRef, ToRefs, UnwrapRef, ShallowUnwrapRef, @@ -51,7 +52,8 @@ export { ReactiveEffectOptions, EffectScheduler, DebuggerOptions, - DebuggerEvent + DebuggerEvent, + DebuggerEventExtraInfo } from './effect' export { effectScope, diff --git a/packages/reactivity/src/ref.ts b/packages/reactivity/src/ref.ts index 9e595968070..94821dade6f 100644 --- a/packages/reactivity/src/ref.ts +++ b/packages/reactivity/src/ref.ts @@ -60,13 +60,6 @@ export function triggerRefValue(ref: RefBase, newVal?: any) { } } -type ToRef = [T] extends [Ref] ? T : Ref> -export type ToRefs = { - // #2687: somehow using ToRef here turns the resulting type into - // a union of multiple Ref<*> types instead of a single Ref<* | *> type. - [K in keyof T]: T[K] extends Ref ? T[K] : Ref> -} - const convert = (val: T): T => isObject(val) ? reactive(val) : val @@ -192,6 +185,11 @@ export function customRef(factory: CustomRefFactory): Ref { return new CustomRefImpl(factory) as any } +export type ToRefs = { + // #2687: somehow using ToRef here turns the resulting type into + // a union of multiple Ref<*> types instead of a single Ref<* | *> type. + [K in keyof T]: T[K] extends Ref ? T[K] : Ref> +} export function toRefs(object: T): ToRefs { if (__DEV__ && !isProxy(object)) { console.warn(`toRefs() expects a reactive object but received a plain one.`) @@ -217,6 +215,7 @@ class ObjectRefImpl { } } +export type ToRef = [T] extends [Ref] ? T : Ref> export function toRef( object: T, key: K diff --git a/packages/runtime-core/src/index.ts b/packages/runtime-core/src/index.ts index c46b6df2276..75d94f29fe5 100644 --- a/packages/runtime-core/src/index.ts +++ b/packages/runtime-core/src/index.ts @@ -147,17 +147,18 @@ declare module '@vue/reactivity' { } export { + Ref, + ToRef, + ToRefs, ReactiveEffectOptions, DebuggerEvent, TrackOpTypes, TriggerOpTypes, - Ref, ComputedRef, WritableComputedRef, UnwrapRef, ShallowUnwrapRef, WritableComputedOptions, - ToRefs, DeepReadonly } from '@vue/reactivity' export {