From abfb2ec8eda080abd17202e445366695140db905 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9B=B8=E5=AD=A6=E9=95=BF?= <75851654@qq.com> Date: Thu, 24 Oct 2019 23:37:52 +0800 Subject: [PATCH] types(reactivity): computed types remove `as` (#367) --- packages/reactivity/src/computed.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/reactivity/src/computed.ts b/packages/reactivity/src/computed.ts index 30ae81805..00a6a422e 100644 --- a/packages/reactivity/src/computed.ts +++ b/packages/reactivity/src/computed.ts @@ -25,17 +25,20 @@ export function computed( export function computed( getterOrOptions: ComputedGetter | WritableComputedOptions ) { - const isReadonly = isFunction(getterOrOptions) - const getter = isReadonly - ? (getterOrOptions as ComputedGetter) - : (getterOrOptions as WritableComputedOptions).get - const setter = isReadonly - ? __DEV__ + let getter: ComputedGetter + let setter: ComputedSetter + + if (isFunction(getterOrOptions)) { + getter = getterOrOptions + setter = __DEV__ ? () => { console.warn('Write operation failed: computed value is readonly') } : NOOP - : (getterOrOptions as WritableComputedOptions).set + } else { + getter = getterOrOptions.get + setter = getterOrOptions.set + } let dirty = true let value: T