From 00734afef5f7bddbdaee52aa5359a6ef989f32d3 Mon Sep 17 00:00:00 2001 From: Runyasak Chaengnaimuang Date: Wed, 21 May 2025 08:06:05 +0700 Subject: [PATCH] fix(compiler-sfc): add error handling for defineModel() without variable assignment (#13352) close #13280 --- .../compiler-sfc/__tests__/compileScript.spec.ts | 6 +++--- .../__tests__/compileScript/defineModel.spec.ts | 12 ++++++++++++ packages/compiler-sfc/src/script/defineModel.ts | 7 +++++++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/packages/compiler-sfc/__tests__/compileScript.spec.ts b/packages/compiler-sfc/__tests__/compileScript.spec.ts index 73c6d316a4..b2a8036a0e 100644 --- a/packages/compiler-sfc/__tests__/compileScript.spec.ts +++ b/packages/compiler-sfc/__tests__/compileScript.spec.ts @@ -1007,7 +1007,7 @@ describe('SFC compile `), @@ -1017,7 +1017,7 @@ describe('SFC compile `), @@ -1027,7 +1027,7 @@ describe('SFC compile + `), + ).toThrow( + 'defineModel() must be assigned to a variable. For example: const model = defineModel()', + ) + }) }) diff --git a/packages/compiler-sfc/src/script/defineModel.ts b/packages/compiler-sfc/src/script/defineModel.ts index 0508280028..746bbabe55 100644 --- a/packages/compiler-sfc/src/script/defineModel.ts +++ b/packages/compiler-sfc/src/script/defineModel.ts @@ -22,6 +22,13 @@ export function processDefineModel( return false } + if (!declId) { + ctx.error( + 'defineModel() must be assigned to a variable. For example: const model = defineModel()', + node, + ) + } + ctx.hasDefineModelCall = true const type = -- 2.47.2