From: Evan You Date: Fri, 3 May 2024 23:29:23 +0000 (-0700) Subject: fix(types): fix app.component() typing with inline defineComponent X-Git-Tag: v3.5.0-alpha.2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=908f70adc06038d1ea253d96f4024367f4a7545d;p=thirdparty%2Fvuejs%2Fcore.git fix(types): fix app.component() typing with inline defineComponent close #10843 --- diff --git a/packages/dts-test/defineComponent.test-d.tsx b/packages/dts-test/defineComponent.test-d.tsx index aa0cfb0eba..4af81be1de 100644 --- a/packages/dts-test/defineComponent.test-d.tsx +++ b/packages/dts-test/defineComponent.test-d.tsx @@ -1959,3 +1959,17 @@ declare const ErrorMessage: { } }) ; + +// #10843 +createApp({}).component( + 'SomeComponent', + defineComponent({ + props: { + title: String, + }, + setup(props) { + expectType(props.title) + return {} + }, + }), +) diff --git a/packages/runtime-core/src/apiCreateApp.ts b/packages/runtime-core/src/apiCreateApp.ts index 286eb2bcc8..12e63211a4 100644 --- a/packages/runtime-core/src/apiCreateApp.ts +++ b/packages/runtime-core/src/apiCreateApp.ts @@ -42,7 +42,10 @@ export interface App { mixin(mixin: ComponentOptions): this component(name: string): Component | undefined - component(name: string, component: Component | DefineComponent): this + component( + name: string, + component: T, + ): this directive(name: string): Directive | undefined directive(name: string, directive: Directive): this mount(