vue/require-prop-types
require type definitions in props
- ⚙️ This rule is included in all of
"plugin:vue/strongly-recommended"
,*.configs["flat/strongly-recommended"]
,"plugin:vue/vue2-strongly-recommended"
,*.configs["flat/vue2-strongly-recommended"]
,"plugin:vue/recommended"
,*.configs["flat/recommended"]
,"plugin:vue/vue2-recommended"
and*.configs["flat/vue2-recommended"]
.
📖 Rule Details
This rule enforces that a props
statement contains type definition.
In committed code, prop definitions should always be as detailed as possible, specifying at least type(s).
<script>
/* ✓ GOOD */
Vue.component('foo', {
props: {
// Without options, just type reference
foo: String,
// With options with type field
bar: {
type: String,
required: true,
},
// With options without type field but with validator field
baz: {
required: true,
validator: function (value) {
return (
value === null ||
Array.isArray(value) && value.length > 0
)
}
}
}
})
/* ✗ BAD */
Vue.component('bar', {
props: ['foo']
})
Vue.component('baz', {
props: {
foo: {},
}
})
</script>
🔧 Options
Nothing.
📚 Further Reading
🚀 Version
This rule was introduced in eslint-plugin-vue v3.9.0