diff --git a/packages/compiler-sfc/__tests__/compileScript.spec.ts b/packages/compiler-sfc/__tests__/compileScript.spec.ts index 11b5661c16c..ce6979f95ab 100644 --- a/packages/compiler-sfc/__tests__/compileScript.spec.ts +++ b/packages/compiler-sfc/__tests__/compileScript.spec.ts @@ -980,7 +980,7 @@ describe('SFC compile `), @@ -990,7 +990,7 @@ describe('SFC compile `), @@ -1000,7 +1000,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 05082800284..746bbabe552 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 =