Quellcode durchsuchen

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

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

fix #1000

* Update packages/runtime-core/src/components/BaseTransition.ts

Co-Authored-By: Carlos Rodrigues <david-181@hotmail.com>

* fix: run ci

Co-authored-by: Carlos Rodrigues <david-181@hotmail.com>
Evan You vor 5 Jahren
Ursprung
Commit
3fafc3b3ac

+ 9 - 9
packages/runtime-core/src/components/BaseTransition.ts

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

+ 1 - 1
packages/runtime-core/src/vnode.ts

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