From: Rahul Kadyan Date: Sun, 6 Oct 2019 02:32:50 +0000 (+0530) Subject: types: Use unique symbol type for _isRef property of ref object (#118) X-Git-Tag: v3.0.0-alpha.0~590 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f58e5e96f279000606d950650a1bae7308afe7f4;p=thirdparty%2Fvuejs%2Fcore.git types: Use unique symbol type for _isRef property of ref object (#118) --- diff --git a/packages/reactivity/__tests__/ref.spec.ts b/packages/reactivity/__tests__/ref.spec.ts index 899cf103e9..dd04ac6a5c 100644 --- a/packages/reactivity/__tests__/ref.spec.ts +++ b/packages/reactivity/__tests__/ref.spec.ts @@ -78,6 +78,7 @@ describe('reactivity/ref', () => { expect(isRef(computed(() => 1))).toBe(true) expect(isRef(0)).toBe(false) + expect(isRef(1)).toBe(false) // an object that looks like a ref isn't necessarily a ref expect(isRef({ value: 0 })).toBe(false) }) diff --git a/packages/reactivity/src/effect.ts b/packages/reactivity/src/effect.ts index 5284825ce2..a147e6136a 100644 --- a/packages/reactivity/src/effect.ts +++ b/packages/reactivity/src/effect.ts @@ -131,7 +131,7 @@ export function track( targetMap.set(target, (depsMap = new Map())) } let dep = depsMap.get(key!) - if (!dep) { + if (dep === void 0) { depsMap.set(key!, (dep = new Set())) } if (!dep.has(effect)) { diff --git a/packages/reactivity/src/ref.ts b/packages/reactivity/src/ref.ts index ad39a74f0f..ff25d371d3 100644 --- a/packages/reactivity/src/ref.ts +++ b/packages/reactivity/src/ref.ts @@ -4,9 +4,10 @@ import { isObject } from '@vue/shared' import { reactive } from './reactive' export const refSymbol = Symbol() +export type RefSymbol = typeof refSymbol export interface Ref { - _isRef: symbol + _isRef: RefSymbol value: UnwrapNestedRefs }