types: improve type for WatchHandler (#160)
This commit is contained in:
parent
ff0f3bdf7c
commit
016231d09f
@ -116,11 +116,11 @@ export type ExtractComputedReturns<T extends any> = {
|
||||
: ReturnType<T[key]>
|
||||
}
|
||||
|
||||
type WatchHandler = (
|
||||
val: any,
|
||||
oldVal: any,
|
||||
export type WatchHandler<T = any> = (
|
||||
val: T,
|
||||
oldVal: T,
|
||||
onCleanup: CleanupRegistrator
|
||||
) => void
|
||||
) => any
|
||||
|
||||
type ComponentWatchOptions = Record<
|
||||
string,
|
||||
|
@ -20,6 +20,7 @@ import {
|
||||
} from './errorHandling'
|
||||
import { onBeforeUnmount } from './apiLifecycle'
|
||||
import { queuePostRenderEffect } from './createRenderer'
|
||||
import { WatchHandler } from './apiOptions'
|
||||
|
||||
export interface WatchOptions {
|
||||
lazy?: boolean
|
||||
@ -49,7 +50,7 @@ export function watch(effect: SimpleEffect, options?: WatchOptions): StopHandle
|
||||
// overload #2: single source + cb
|
||||
export function watch<T>(
|
||||
source: WatcherSource<T>,
|
||||
cb: (newValue: T, oldValue: T, onCleanup: CleanupRegistrator) => any,
|
||||
cb: WatchHandler<T>,
|
||||
options?: WatchOptions
|
||||
): StopHandle
|
||||
|
||||
@ -65,14 +66,9 @@ export function watch<T extends WatcherSource<unknown>[]>(
|
||||
): StopHandle
|
||||
|
||||
// implementation
|
||||
export function watch(
|
||||
effectOrSource:
|
||||
| WatcherSource<unknown>
|
||||
| WatcherSource<unknown>[]
|
||||
| SimpleEffect,
|
||||
cbOrOptions?:
|
||||
| ((value: any, oldValue: any, onCleanup: CleanupRegistrator) => any)
|
||||
| WatchOptions,
|
||||
export function watch<T = any>(
|
||||
effectOrSource: WatcherSource<T> | WatcherSource<T>[] | SimpleEffect,
|
||||
cbOrOptions?: WatchHandler<T> | WatchOptions,
|
||||
options?: WatchOptions
|
||||
): StopHandle {
|
||||
if (isFunction(cbOrOptions)) {
|
||||
|
Loading…
Reference in New Issue
Block a user