]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
types(reactivity): computed types remove `as` (#367)
author相学长 <75851654@qq.com>
Thu, 24 Oct 2019 15:37:52 +0000 (23:37 +0800)
committerEvan You <yyx990803@gmail.com>
Thu, 24 Oct 2019 15:37:52 +0000 (11:37 -0400)
packages/reactivity/src/computed.ts

index 30ae818055c97e55926b807cd548346d40be3b7d..00a6a422ed7f94685da207fe93a7445cba7a8928 100644 (file)
@@ -25,17 +25,20 @@ export function computed<T>(
 export function computed<T>(
   getterOrOptions: ComputedGetter<T> | WritableComputedOptions<T>
 ) {
-  const isReadonly = isFunction(getterOrOptions)
-  const getter = isReadonly
-    ? (getterOrOptions as ComputedGetter<T>)
-    : (getterOrOptions as WritableComputedOptions<T>).get
-  const setter = isReadonly
-    ? __DEV__
+  let getter: ComputedGetter<T>
+  let setter: ComputedSetter<T>
+
+  if (isFunction(getterOrOptions)) {
+    getter = getterOrOptions
+    setter = __DEV__
       ? () => {
           console.warn('Write operation failed: computed value is readonly')
         }
       : NOOP
-    : (getterOrOptions as WritableComputedOptions<T>).set
+  } else {
+    getter = getterOrOptions.get
+    setter = getterOrOptions.set
+  }
 
   let dirty = true
   let value: T