diff --git a/lib/rules/require-valid-default-prop.js b/lib/rules/require-valid-default-prop.js index 22dbe5b4d..659df0183 100644 --- a/lib/rules/require-valid-default-prop.js +++ b/lib/rules/require-valid-default-prop.js @@ -102,23 +102,20 @@ module.exports = { for (const prop of properties) { const type = getPropertyNode(prop.value, 'type') - if (!type) { - return - } + if (!type) continue const typeNames = new Set(getTypes(type.value) .map(item => item === 'Object' || item === 'Array' ? 'Function' : item) // Object and Array require function .filter(item => NATIVE_TYPES.has(item))) - if (typeNames.size === 0) { // There is no native types detected - return - } + // There is no native types detected + if (typeNames.size === 0) continue const def = getPropertyNode(prop.value, 'default') - if (!def) return + if (!def) continue const defType = getValueType(def.value) - if (typeNames.has(defType)) return + if (!defType || typeNames.has(defType)) continue context.report({ node: def, diff --git a/tests/lib/rules/require-valid-default-prop.js b/tests/lib/rules/require-valid-default-prop.js index 8c4a84abf..b95fa71ae 100644 --- a/tests/lib/rules/require-valid-default-prop.js +++ b/tests/lib/rules/require-valid-default-prop.js @@ -65,6 +65,7 @@ ruleTester.run('require-valid-default-prop', rule, { foo: null, foo: Number, foo: [String, Number], + foo: { type: Number, default: VAR_BAR }, foo: { type: Number, default: 100 }, foo: { type: [String, Number], default: '' }, foo: { type: [String, Number], default: 0 },