import { ComputedRef } from './computed'
import { CollectionTypes } from './collectionHandlers'
+const RefSymbol = Symbol()
+
export interface Ref<T = any> {
/**
- * @internal
+ * Type differentiator only.
+ * We need this to be in public d.ts but don't want it to show up in IDE
+ * autocomplete, so we use a private Symbol instead.
*/
- __v_isRef: true
+ [RefSymbol]: true
value: T
}
import { expectType } from 'tsd'
-import { Ref, ref, isRef, unref } from './index'
+import { Ref, ref, isRef, unref, reactive } from './index'
function plainType(arg: number | Ref<number>) {
// ref coercing
}
withSymbol()
+
+const state = reactive({
+ foo: {
+ value: 1,
+ label: 'bar'
+ }
+})
+
+expectType<string>(state.foo.label)