diff --git a/packages/runtime-core/src/apiWatch.ts b/packages/runtime-core/src/apiWatch.ts index 71cb485a..eb322bd2 100644 --- a/packages/runtime-core/src/apiWatch.ts +++ b/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 = false>( source: WatchSource, cb: WatchCallback, options?: WatchOptions ): 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( - effectOrSource: WatchSource | WatchSource[] | WatchEffect, - cbOrOptions?: WatchCallback | WatchOptions, + source: WatchSource | WatchSource[], + cb: WatchCallback, 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(