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: [