types(runtime-core): improve types for transition hook

fix #1000
This commit is contained in:
likui 2020-04-21 12:06:10 +08:00
parent 6fefeafe98
commit 9bddf3820e
2 changed files with 10 additions and 10 deletions

View File

@ -43,14 +43,14 @@ export interface BaseTransitionProps<HostElement = RendererElement> {
onLeaveCancelled?: (el: HostElement) => void // only fired in persisted mode onLeaveCancelled?: (el: HostElement) => void // only fired in persisted mode
} }
export interface TransitionHooks { export interface TransitionHooks<HostElement = RendererElement> {
persisted: boolean persisted: boolean
beforeEnter(el: RendererElement): void beforeEnter(el: HostElement): void
enter(el: RendererElement): void enter(el: HostElement): void
leave(el: RendererElement, remove: () => void): void leave(el: HostElement, remove: () => void): void
afterLeave?(): void afterLeave?(): void
delayLeave?( delayLeave?(
el: RendererElement, el: HostElement,
earlyRemove: () => void, earlyRemove: () => void,
delayedLeave: () => void delayedLeave: () => void
): void ): void
@ -270,9 +270,9 @@ export function resolveTransitionHooks(
) )
} }
const hooks: TransitionHooks = { const hooks: TransitionHooks<TransitionElement> = {
persisted, persisted,
beforeEnter(el: TransitionElement) { beforeEnter(el) {
if (!appear && !state.isMounted) { if (!appear && !state.isMounted) {
return return
} }
@ -293,7 +293,7 @@ export function resolveTransitionHooks(
callHook(onBeforeEnter, [el]) callHook(onBeforeEnter, [el])
}, },
enter(el: TransitionElement) { enter(el) {
if (!appear && !state.isMounted) { if (!appear && !state.isMounted) {
return return
} }
@ -318,7 +318,7 @@ export function resolveTransitionHooks(
} }
}, },
leave(el: TransitionElement, remove) { leave(el, remove) {
const key = String(vnode.key) const key = String(vnode.key)
if (el._enterCb) { if (el._enterCb) {
el._enterCb(true /* cancelled */) el._enterCb(true /* cancelled */)

View File

@ -107,7 +107,7 @@ export interface VNode<HostNode = RendererNode, HostElement = RendererElement> {
component: ComponentInternalInstance | null component: ComponentInternalInstance | null
suspense: SuspenseBoundary | null suspense: SuspenseBoundary | null
dirs: DirectiveBinding[] | null dirs: DirectiveBinding[] | null
transition: TransitionHooks | null transition: TransitionHooks<HostElement> | null
// DOM // DOM
el: HostNode | null el: HostNode | null