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