diff --git a/packages/runtime-core/src/helpers/createSlots.ts b/packages/runtime-core/src/helpers/createSlots.ts index b44d1f1090b..f370f5ca803 100644 --- a/packages/runtime-core/src/helpers/createSlots.ts +++ b/packages/runtime-core/src/helpers/createSlots.ts @@ -1,9 +1,12 @@ -import { Slot } from '../componentSlots' import { isArray } from '@vue/shared' +import { VNode } from '../vnode' + +// #6651 res can be undefined in SSR in string push mode +type SSRSlot = (...args: any[]) => VNode[] | undefined interface CompiledSlotDescriptor { name: string - fn: Slot + fn: SSRSlot key?: string } @@ -12,13 +15,13 @@ interface CompiledSlotDescriptor { * @private */ export function createSlots( - slots: Record, + slots: Record, dynamicSlots: ( | CompiledSlotDescriptor | CompiledSlotDescriptor[] | undefined )[] -): Record { +): Record { for (let i = 0; i < dynamicSlots.length; i++) { const slot = dynamicSlots[i] // array of dynamic slot generated by