From: Evan You Date: Wed, 28 Sep 2022 02:38:19 +0000 (+0800) Subject: chore: use stricter slots type in createSlots X-Git-Tag: v3.2.40~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cae1aa82cc5f16abc2b63feaedfe8158aa0c4a16;p=thirdparty%2Fvuejs%2Fcore.git chore: use stricter slots type in createSlots --- diff --git a/packages/runtime-core/src/helpers/createSlots.ts b/packages/runtime-core/src/helpers/createSlots.ts index b44d1f1090..f370f5ca80 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