]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
chore(runtime-vapor): improve hydration type safety with DynamicFragment typing
authordaiwei <daiwei521@126.com>
Fri, 26 Dec 2025 03:03:48 +0000 (11:03 +0800)
committeredison <daiwei521@126.com>
Fri, 26 Dec 2025 05:37:59 +0000 (13:37 +0800)
packages/runtime-vapor/src/dom/hydration.ts

index 8c1ae81af915ae0dbf74ba18bbc923771348bd60..881713815f85688a7952ca21d67fc7b472912749 100644 (file)
@@ -23,12 +23,15 @@ import {
   parentNode,
 } from './node'
 import { findBlockNode, remove } from '../block'
+import type { DynamicFragment } from '../fragment'
 
 const isHydratingStack = [] as boolean[]
 export let isHydrating = false
 export let currentHydrationNode: Node | null = null
 
-let _hydrateDynamicFragment: ((frag: any, isEmpty: boolean) => void) | undefined
+let _hydrateDynamicFragment:
+  | ((frag: DynamicFragment, isEmpty: boolean) => void)
+  | undefined
 
 function pushIsHydrating(value: boolean): void {
   isHydratingStack.push((isHydrating = value))
@@ -317,12 +320,18 @@ export function removeFragmentNodes(node: Node, endAnchor?: Node): void {
   }
 }
 
-export function hydrateDynamicFragment(frag: any, isEmpty: boolean): void {
+export function hydrateDynamicFragment(
+  frag: DynamicFragment,
+  isEmpty: boolean,
+): void {
   _hydrateDynamicFragment && _hydrateDynamicFragment(frag, isEmpty)
 }
 
 // Hydrate implementation for DynamicFragment
-function hydrateDynamicFragmentImpl(frag: any, isEmpty: boolean): void {
+function hydrateDynamicFragmentImpl(
+  frag: DynamicFragment,
+  isEmpty: boolean,
+): void {
   // avoid repeated hydration during fallback rendering
   if (frag.anchor) return