Bladeren bron

types(reactivity): computed types remove `as` (#367)

相学长 6 jaren geleden
bovenliggende
commit
abfb2ec8ed
1 gewijzigde bestanden met toevoegingen van 10 en 7 verwijderingen
  1. 10 7
      packages/reactivity/src/computed.ts

+ 10 - 7
packages/reactivity/src/computed.ts

@@ -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