From: edison Date: Wed, 24 Sep 2025 09:10:20 +0000 (+0800) Subject: fix(compiler-sfc): add support for @vue-ignore in runtime type resolution (#13906) X-Git-Tag: v3.5.22~22 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ba7f7f90f689f6e7e0417a192d081db542de28ec;p=thirdparty%2Fvuejs%2Fcore.git fix(compiler-sfc): add support for @vue-ignore in runtime type resolution (#13906) --- diff --git a/packages/compiler-sfc/__tests__/compileScript/resolveType.spec.ts b/packages/compiler-sfc/__tests__/compileScript/resolveType.spec.ts index a1476c76a..0f46d6085 100644 --- a/packages/compiler-sfc/__tests__/compileScript/resolveType.spec.ts +++ b/packages/compiler-sfc/__tests__/compileScript/resolveType.spec.ts @@ -149,6 +149,17 @@ describe('resolveType', () => { }) }) + test('TSPropertySignature with ignore', () => { + expect( + resolve(` + type Foo = string + defineProps<{ foo: /* @vue-ignore */ Foo }>() + `).props, + ).toStrictEqual({ + foo: ['Unknown'], + }) + }) + // #7553 test('union type', () => { expect( diff --git a/packages/compiler-sfc/src/script/resolveType.ts b/packages/compiler-sfc/src/script/resolveType.ts index fb79323cb..f6763b764 100644 --- a/packages/compiler-sfc/src/script/resolveType.ts +++ b/packages/compiler-sfc/src/script/resolveType.ts @@ -1515,6 +1515,13 @@ export function inferRuntimeType( isKeyOf = false, typeParameters?: Record, ): string[] { + if ( + node.leadingComments && + node.leadingComments.some(c => c.value.includes('@vue-ignore')) + ) { + return [UNKNOWN_TYPE] + } + try { switch (node.type) { case 'TSStringKeyword':