From: daiwei Date: Fri, 26 Dec 2025 03:03:48 +0000 (+0800) Subject: chore(runtime-vapor): improve hydration type safety with DynamicFragment typing X-Git-Tag: v3.6.0-beta.2~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b8841ea249977d2c950602cb7673e237cd6cebe3;p=thirdparty%2Fvuejs%2Fcore.git chore(runtime-vapor): improve hydration type safety with DynamicFragment typing --- diff --git a/packages/runtime-vapor/src/dom/hydration.ts b/packages/runtime-vapor/src/dom/hydration.ts index 8c1ae81af9..881713815f 100644 --- a/packages/runtime-vapor/src/dom/hydration.ts +++ b/packages/runtime-vapor/src/dom/hydration.ts @@ -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