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 =