Przeglądaj źródła

fix(types): ensure createBlock() helper accepts Teleport and Supsense types (fix: #2855) (#5458)

Co-authored-by: Carlos Rodrigues <carlos@hypermob.co.uk>
Thorsten Lünborg 3 lat temu
rodzic
commit
e5fc7dcc02
2 zmienionych plików z 24 dodań i 1 usunięć
  1. 4 1
      packages/runtime-core/src/vnode.ts
  2. 20 0
      test-dts/compiler.test-d.ts

+ 4 - 1
packages/runtime-core/src/vnode.ts

@@ -24,6 +24,7 @@ import { RawSlots } from './componentSlots'
 import { isProxy, Ref, toRaw, ReactiveFlags, isRef } from '@vue/reactivity'
 import { AppContext } from './apiCreateApp'
 import {
+  Suspense,
   SuspenseImpl,
   isSuspense,
   SuspenseBoundary
@@ -31,7 +32,7 @@ import {
 import { DirectiveBinding } from './directives'
 import { TransitionHooks } from './components/BaseTransition'
 import { warn } from './warning'
-import { TeleportImpl, isTeleport } from './components/Teleport'
+import { Teleport, TeleportImpl, isTeleport } from './components/Teleport'
 import {
   currentRenderingInstance,
   currentScopeId
@@ -63,7 +64,9 @@ export type VNodeTypes =
   | typeof Static
   | typeof Comment
   | typeof Fragment
+  | typeof Teleport
   | typeof TeleportImpl
+  | typeof Suspense
   | typeof SuspenseImpl
 
 export type VNodeRef =

+ 20 - 0
test-dts/compiler.test-d.ts

@@ -0,0 +1,20 @@
+import {
+  expectType,
+  createBlock,
+  VNode,
+  Teleport,
+  Text,
+  Static,
+  Comment,
+  Fragment,
+  Suspense,
+  defineComponent
+} from './index'
+
+expectType<VNode>(createBlock(Teleport))
+expectType<VNode>(createBlock(Text))
+expectType<VNode>(createBlock(Static))
+expectType<VNode>(createBlock(Comment))
+expectType<VNode>(createBlock(Fragment))
+expectType<VNode>(createBlock(Suspense))
+expectType<VNode>(createBlock(defineComponent({})))