diff --git a/lib/utils/index.js b/lib/utils/index.js index f16bcef2c..9a1f8aafe 100644 --- a/lib/utils/index.js +++ b/lib/utils/index.js @@ -3121,7 +3121,7 @@ function getWithDefaultsProps(node) { for (const prop of param.properties) { if (prop.type !== 'Property') { - return {} + continue } const name = getStaticPropertyName(prop) if (name != null) { diff --git a/tests/lib/rules/require-default-prop.js b/tests/lib/rules/require-default-prop.js index 97aea4919..834f319aa 100644 --- a/tests/lib/rules/require-default-prop.js +++ b/tests/lib/rules/require-default-prop.js @@ -329,6 +329,28 @@ ruleTester.run('require-default-prop', rule, { ...languageOptions, parserOptions: { parser: require.resolve('@typescript-eslint/parser') } } + }, + { + filename: 'test.vue', + code: ` + + `, + languageOptions: { + parser: require('vue-eslint-parser'), + ...languageOptions, + parserOptions: { parser: require.resolve('@typescript-eslint/parser') } + } } ], @@ -544,6 +566,33 @@ ruleTester.run('require-default-prop', rule, { ...languageOptions } }, + { + filename: 'test.vue', + code: ` + + `, + errors: [ + { + message: "Prop 'bar' requires default value to be set.", + line: 8 + } + ], + languageOptions: { + parser: require('vue-eslint-parser'), + ...languageOptions, + parserOptions: { parser: require.resolve('@typescript-eslint/parser') } + } + }, ...(semver.lt( require('@typescript-eslint/parser/package.json').version, '4.0.0'