diff --git a/lib/rules/valid-define-emits.js b/lib/rules/valid-define-emits.js
index 6b79e83cc..1fabbc025 100644
--- a/lib/rules/valid-define-emits.js
+++ b/lib/rules/valid-define-emits.js
@@ -70,8 +70,8 @@ module.exports = {
}
},
Identifier(node) {
- for (const def of emitsDefExpressions) {
- if (utils.inRange(def.range, node)) {
+ for (const defineEmits of emitsDefExpressions) {
+ if (utils.inRange(defineEmits.range, node)) {
const variable = findVariable(context.getScope(), node)
if (
variable &&
@@ -79,8 +79,10 @@ module.exports = {
) {
if (
variable.defs.length &&
- variable.defs.every((def) =>
- utils.inRange(scriptSetup.range, def.name)
+ variable.defs.every(
+ (def) =>
+ utils.inRange(scriptSetup.range, def.name) &&
+ !utils.inRange(defineEmits.range, def.name)
)
) {
//`defineEmits` are referencing locally declared variables.
diff --git a/lib/rules/valid-define-props.js b/lib/rules/valid-define-props.js
index 613916659..b67af7c8c 100644
--- a/lib/rules/valid-define-props.js
+++ b/lib/rules/valid-define-props.js
@@ -71,8 +71,8 @@ module.exports = {
}
},
Identifier(node) {
- for (const def of propsDefExpressions) {
- if (utils.inRange(def.range, node)) {
+ for (const defineProps of propsDefExpressions) {
+ if (utils.inRange(defineProps.range, node)) {
const variable = findVariable(context.getScope(), node)
if (
variable &&
@@ -80,8 +80,10 @@ module.exports = {
) {
if (
variable.defs.length &&
- variable.defs.every((def) =>
- utils.inRange(scriptSetup.range, def.name)
+ variable.defs.every(
+ (def) =>
+ utils.inRange(scriptSetup.range, def.name) &&
+ !utils.inRange(defineProps.range, def.name)
)
) {
//`defineProps` are referencing locally declared variables.
diff --git a/tests/lib/rules/valid-define-emits.js b/tests/lib/rules/valid-define-emits.js
index 309375e94..542805848 100644
--- a/tests/lib/rules/valid-define-emits.js
+++ b/tests/lib/rules/valid-define-emits.js
@@ -61,6 +61,18 @@ tester.run('valid-define-emits', rule, {
defineEmits(def)
`
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+ `
}
],
invalid: [
diff --git a/tests/lib/rules/valid-define-props.js b/tests/lib/rules/valid-define-props.js
index 0bd49f171..cb1f50daf 100644
--- a/tests/lib/rules/valid-define-props.js
+++ b/tests/lib/rules/valid-define-props.js
@@ -61,6 +61,21 @@ tester.run('valid-define-props', rule, {
defineProps(def)
`
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+ `
}
],
invalid: [