diff --git a/packages/runtime-core/src/suspense.ts b/packages/runtime-core/src/suspense.ts index a8d323c0..a01d7b20 100644 --- a/packages/runtime-core/src/suspense.ts +++ b/packages/runtime-core/src/suspense.ts @@ -10,11 +10,11 @@ import { handleError, ErrorCodes } from './errorHandling' import { pushWarningContext, popWarningContext } from './warning' export function isSuspenseType(type: VNodeTypes): type is typeof SuspenseImpl { - return (type as any).__isSuspenseImpl === true + return (type as any).__isSuspense === true } export const SuspenseImpl = { - __isSuspenseImpl: true, + __isSuspense: true, process( n1: VNode | null, n2: VNode, diff --git a/packages/runtime-core/src/vnode.ts b/packages/runtime-core/src/vnode.ts index 08407429..acc4537c 100644 --- a/packages/runtime-core/src/vnode.ts +++ b/packages/runtime-core/src/vnode.ts @@ -25,12 +25,14 @@ export const Portal = Symbol(__DEV__ ? 'Portal' : undefined) export const Text = Symbol(__DEV__ ? 'Text' : undefined) export const Comment = Symbol(__DEV__ ? 'Comment' : undefined) -// Export as {} to avoid circular type dependency between `suspense.ts` and -// `createRenderer.ts` in exported types. +// Export Suspense with casting to avoid circular type dependency between +// `suspense.ts` and `createRenderer.ts` in exported types. // A circular type dependency causes tsc to generate d.ts with dynmaic import() // calls using realtive paths, which works for separate d.ts files, but will // fail after d.ts rollup with API Extractor. -const Suspense = (__FEATURE_SUSPENSE__ ? SuspenseImpl : null) as {} +const Suspense = ((__FEATURE_SUSPENSE__ ? SuspenseImpl : null) as any) as { + __isSuspense: true +} export { Suspense } export type VNodeTypes =