diff --git a/packages/runtime-core/src/apiOptions.ts b/packages/runtime-core/src/apiOptions.ts index ad1ab8676..2de548cf3 100644 --- a/packages/runtime-core/src/apiOptions.ts +++ b/packages/runtime-core/src/apiOptions.ts @@ -63,7 +63,10 @@ export interface ComponentOptionsBase< // Luckily `render()` doesn't need any arguments nor does it care about return // type. render?: Function - components?: Record + components?: Record< + string, + Component | { new (): ComponentPublicInstance } + > directives?: Record inheritAttrs?: boolean diff --git a/test-dts/defineComponent.test-d.tsx b/test-dts/defineComponent.test-d.tsx index 5ae79cfef..20ead670e 100644 --- a/test-dts/defineComponent.test-d.tsx +++ b/test-dts/defineComponent.test-d.tsx @@ -259,3 +259,11 @@ describe('compatibility w/ createApp', () => { }) createApp().mount(comp3, '#hello') }) + +describe('defineComponent', () => { + test('should accept components defined with defineComponent') + const comp = defineComponent({}) + defineComponent({ + components: { comp } + }) +})