From: 相学长 <75851654@qq.com> Date: Thu, 24 Oct 2019 15:37:52 +0000 (+0800) Subject: types(reactivity): computed types remove `as` (#367) X-Git-Tag: v3.0.0-alpha.0~323 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=abfb2ec8eda080abd17202e445366695140db905;p=thirdparty%2Fvuejs%2Fcore.git types(reactivity): computed types remove `as` (#367) --- diff --git a/packages/reactivity/src/computed.ts b/packages/reactivity/src/computed.ts index 30ae818055..00a6a422ed 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