Parcourir la source

refactor: remove old watch signature support

Evan You il y a 6 ans
Parent
commit
711d16cc65
1 fichiers modifiés avec 11 ajouts et 23 suppressions
  1. 11 23
      packages/runtime-core/src/apiWatch.ts

+ 11 - 23
packages/runtime-core/src/apiWatch.ts

@@ -82,20 +82,14 @@ export function watchEffect(
 // initial value for watchers to trigger on undefined initial values
 const INITIAL_WATCHER_VALUE = {}
 
-// overload #1: simple effect
-export function watch(
-  effect: WatchEffect,
-  options?: BaseWatchOptions
-): StopHandle
-
-// overload #2: single source + cb
+// overload #1: single source + cb
 export function watch<T, Immediate extends Readonly<boolean> = false>(
   source: WatchSource<T>,
   cb: WatchCallback<T, Immediate extends true ? (T | undefined) : T>,
   options?: WatchOptions<Immediate>
 ): StopHandle
 
-// overload #3: array of multiple sources + cb
+// overload #2: array of multiple sources + cb
 // Readonly constraint helps the callback to correctly infer value types based
 // on position in the source array. Otherwise the values will get a union type
 // of all possible value types.
@@ -110,24 +104,18 @@ export function watch<
 
 // implementation
 export function watch<T = any>(
-  effectOrSource: WatchSource<T> | WatchSource<T>[] | WatchEffect,
-  cbOrOptions?: WatchCallback<T> | WatchOptions,
+  source: WatchSource<T> | WatchSource<T>[],
+  cb: WatchCallback<T>,
   options?: WatchOptions
 ): StopHandle {
-  if (isFunction(cbOrOptions)) {
-    // watch(source, cb)
-    return doWatch(effectOrSource, cbOrOptions, options)
-  } else {
-    // TODO remove this in the next release
-    __DEV__ &&
-      warn(
-        `\`watch(fn, options?)\` signature has been moved to a separate API. ` +
-          `Use \`watchEffect(fn, options?)\` instead. \`watch\` will only ` +
-          `support \`watch(source, cb, options?) signature in the next release.`
-      )
-    // watch(effect)
-    return doWatch(effectOrSource, null, cbOrOptions)
+  if (__DEV__ && !isFunction(cb)) {
+    warn(
+      `\`watch(fn, options?)\` signature has been moved to a separate API. ` +
+        `Use \`watchEffect(fn, options?)\` instead. \`watch\` now only ` +
+        `supports \`watch(source, cb, options?) signature.`
+    )
   }
+  return doWatch(source, cb, options)
 }
 
 function doWatch(