JS.VUE.REQUIRE.PROP.TYPE.CONSTRUCTOR
Require prop type to be a constructor
Rule Details
This rule reports prop types that can't be presumed as constructors.
It's impossible to catch every possible case and know whether the prop type is a constructor or not, hence this rule restricts few types of nodes, instead of allowing correct ones.
The following types are forbidden and will be reported:
- Literal
- TemplateLiteral
- BinaryExpression
- UpdateExpression
It will catch most commonly made mistakes which are using strings instead of constructors.
{'vue/require-prop-type-constructor': ['error']}
Copy
<script>
export default {
props: {
/* GOOD */
myProp: Number,
anotherProp: [Number, String],
myFieldWithBadType: {
type: Object,
default: function() {
return {}
},
},
myOtherFieldWithBadType: {
type: Number,
default: 1,
},
/* BAD */
myProp: "Number",
anotherProp: ["Number", "String"],
myFieldWithBadType: {
type: "Object",
default: function() {
return {}
},
},
myOtherFieldWithBadType: {
type: "Number",
default: 1,
},
}
}
</script>
Options
Nothing.
Further Reading
- Guide - Prop Validation (https://v3.vuejs.org/guide/component-props.html#prop-validation)