Преглед изворни кода

fix(types): fix this.$slots type for defineComponent

Evan You пре 4 година
родитељ
комит
d3add06e6e
2 измењених фајлова са 10 додато и 1 уклоњено
  1. 7 0
      types/test/v3/define-component-test.tsx
  2. 3 1
      types/v3-component-public-instance.d.ts

+ 7 - 0
types/test/v3/define-component-test.tsx

@@ -1138,3 +1138,10 @@ defineComponent({
     }
   }
 })
+
+// https://github.com/vuejs/vue/issues/12628#issuecomment-1177258223
+defineComponent({
+  render(h) {
+    return h('div', {}, [...this.$slots.default!])
+  }
+})

+ 3 - 1
types/v3-component-public-instance.d.ts

@@ -18,6 +18,7 @@ import {
   ComponentOptionsBase
 } from './v3-component-options'
 import { EmitFn, EmitsOptions, Slots } from './v3-setup-context'
+import { VNode } from './vnode'
 
 /**
  * Custom properties added to component instances in any way and can be accessed through `this`
@@ -162,7 +163,8 @@ export type ComponentPublicInstance<
   >
   $attrs: Data
   $refs: Data
-  $slots: Slots
+  $slots: Record<string, VNode[] | undefined>
+  $scopedSlots: Slots
   $root: ComponentPublicInstance | null
   $parent: ComponentPublicInstance | null
   $emit: EmitFn<E>