From f0592e55d43dc522946883a76e0c8555d0067dbd Mon Sep 17 00:00:00 2001 From: Carles Mitjans Coma Date: Wed, 22 Nov 2023 14:07:22 +0100 Subject: [PATCH 1/3] feat: add types when creating global directives --- packages/runtime-core/src/apiCreateApp.ts | 2 +- packages/runtime-core/src/compat/global.ts | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/runtime-core/src/apiCreateApp.ts b/packages/runtime-core/src/apiCreateApp.ts index 8e58e69378e..a0e78955c4f 100644 --- a/packages/runtime-core/src/apiCreateApp.ts +++ b/packages/runtime-core/src/apiCreateApp.ts @@ -43,7 +43,7 @@ export interface App { component(name: string): Component | undefined component(name: string, component: Component | DefineComponent): this directive(name: string): Directive | undefined - directive(name: string, directive: Directive): this + directive(name: string, directive: Directive): this mount( rootContainer: HostElement | string, isHydrate?: boolean, diff --git a/packages/runtime-core/src/compat/global.ts b/packages/runtime-core/src/compat/global.ts index 2efceb87fa6..8f69184e44d 100644 --- a/packages/runtime-core/src/compat/global.ts +++ b/packages/runtime-core/src/compat/global.ts @@ -83,7 +83,10 @@ export type CompatVue = Pick & { component(name: string): Component | undefined component(name: string, component: Component): CompatVue directive(name: string): Directive | undefined - directive(name: string, directive: Directive): CompatVue + directive( + name: string, + directive: Directive + ): CompatVue compile(template: string): RenderFunction From 7adb6c880c5ecca02e625467da001212a6eabcd0 Mon Sep 17 00:00:00 2001 From: Carles Mitjans Coma Date: Wed, 22 Nov 2023 14:10:51 +0100 Subject: [PATCH 2/3] feat: add types when accessing global directives --- packages/runtime-core/src/apiCreateApp.ts | 2 +- packages/runtime-core/src/compat/global.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/runtime-core/src/apiCreateApp.ts b/packages/runtime-core/src/apiCreateApp.ts index a0e78955c4f..e516765b44a 100644 --- a/packages/runtime-core/src/apiCreateApp.ts +++ b/packages/runtime-core/src/apiCreateApp.ts @@ -42,7 +42,7 @@ export interface App { mixin(mixin: ComponentOptions): this component(name: string): Component | undefined component(name: string, component: Component | DefineComponent): this - directive(name: string): Directive | undefined + directive(name: string): Directive | undefined directive(name: string, directive: Directive): this mount( rootContainer: HostElement | string, diff --git a/packages/runtime-core/src/compat/global.ts b/packages/runtime-core/src/compat/global.ts index 8f69184e44d..7d084333292 100644 --- a/packages/runtime-core/src/compat/global.ts +++ b/packages/runtime-core/src/compat/global.ts @@ -82,7 +82,7 @@ export type CompatVue = Pick & { component(name: string): Component | undefined component(name: string, component: Component): CompatVue - directive(name: string): Directive | undefined + directive(name: string): Directive | undefined directive( name: string, directive: Directive From 9ea9d2e7234fc1f044ee5b1db8c3cd496c13f686 Mon Sep 17 00:00:00 2001 From: Carlos Rodrigues Date: Thu, 30 Nov 2023 10:32:44 +0000 Subject: [PATCH 3/3] chore: add test --- packages/dts-test/appDirective.test-d.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 packages/dts-test/appDirective.test-d.ts diff --git a/packages/dts-test/appDirective.test-d.ts b/packages/dts-test/appDirective.test-d.ts new file mode 100644 index 00000000000..0d7707a7c19 --- /dev/null +++ b/packages/dts-test/appDirective.test-d.ts @@ -0,0 +1,14 @@ +import { createApp } from 'vue' +import { expectType } from './utils' + +const app = createApp({}) + +app.directive('custom', { + mounted(el, binding) { + expectType(el) + expectType(binding.value) + + // @ts-expect-error not any + expectType(binding.value) + } +})