From b2b03cc6b316349163ff739bca91176f04048154 Mon Sep 17 00:00:00 2001 From: NoTwoBoy <1244476905@qq.com> Date: Tue, 24 Dec 2024 19:31:47 +0800 Subject: [PATCH 1/2] fix(types): the directive's modifiers should be optional --- packages/runtime-core/src/directives.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/runtime-core/src/directives.ts b/packages/runtime-core/src/directives.ts index f6a33f5a289..5897b39df82 100644 --- a/packages/runtime-core/src/directives.ts +++ b/packages/runtime-core/src/directives.ts @@ -111,7 +111,9 @@ export type Directive< | ObjectDirective | FunctionDirective -export type DirectiveModifiers = Record +export type DirectiveModifiers = Partial< + Record +> export function validateDirectiveName(name: string): void { if (isBuiltInDirective(name)) { From feba6847e32e5153aee542a6d6fafd8b7fc102e0 Mon Sep 17 00:00:00 2001 From: NoTwoBoy <1244476905@qq.com> Date: Tue, 24 Dec 2024 20:26:40 +0800 Subject: [PATCH 2/2] fix: test --- packages-private/dts-test/appDirective.test-d.ts | 2 +- packages-private/dts-test/directives.test-d.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages-private/dts-test/appDirective.test-d.ts b/packages-private/dts-test/appDirective.test-d.ts index fb655a039d5..59101c22ec8 100644 --- a/packages-private/dts-test/appDirective.test-d.ts +++ b/packages-private/dts-test/appDirective.test-d.ts @@ -9,7 +9,7 @@ app.directive( mounted(el, binding) { expectType(el) expectType(binding.value) - expectType<{ prevent: boolean; stop: boolean }>(binding.modifiers) + expectType<{ prevent?: boolean; stop?: boolean }>(binding.modifiers) expectType<'arg1' | 'arg2'>(binding.arg!) // @ts-expect-error not any diff --git a/packages-private/dts-test/directives.test-d.ts b/packages-private/dts-test/directives.test-d.ts index 5b87ebf71e5..6a478b673d9 100644 --- a/packages-private/dts-test/directives.test-d.ts +++ b/packages-private/dts-test/directives.test-d.ts @@ -29,7 +29,7 @@ describe('custom', () => { value: number oldValue: number | null arg?: 'Arg' - modifiers: Record<'a' | 'b', boolean> + modifiers: Partial> }>(testDirective()) expectType<{