diff --git a/packages/reactivity/src/index.ts b/packages/reactivity/src/index.ts index a7a03b8c573..5c65cd52ae2 100644 --- a/packages/reactivity/src/index.ts +++ b/packages/reactivity/src/index.ts @@ -28,6 +28,7 @@ export { shallowReadonly, markRaw, toRaw, + Raw, ReactiveFlags, DeepReadonly, ShallowReactive, diff --git a/packages/reactivity/src/reactive.ts b/packages/reactivity/src/reactive.ts index 1a947499710..83e1c7abee1 100644 --- a/packages/reactivity/src/reactive.ts +++ b/packages/reactivity/src/reactive.ts @@ -241,9 +241,9 @@ export function toRaw(observed: T): T { return raw ? toRaw(raw) : observed } -export function markRaw( - value: T -): T & { [RawSymbol]?: true } { +export type Raw = T & { [RawSymbol]?: true } + +export function markRaw(value: T): Raw { def(value, ReactiveFlags.SKIP, true) return value } diff --git a/packages/runtime-core/src/index.ts b/packages/runtime-core/src/index.ts index 735bea7d1e4..2b9bde82c44 100644 --- a/packages/runtime-core/src/index.ts +++ b/packages/runtime-core/src/index.ts @@ -172,7 +172,8 @@ export { DebuggerEvent, DebuggerEventExtraInfo, TrackOpTypes, - TriggerOpTypes + TriggerOpTypes, + Raw } from '@vue/reactivity' export { WatchEffect,