diff --git a/packages/compiler-sfc/__tests__/compileScript.spec.ts b/packages/compiler-sfc/__tests__/compileScript.spec.ts
index 73c6d316a..b2a8036a0 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 050828002..746bbabe5 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 =