vue/require-prop-type-constructor

require prop type to be a constructor

  • ⚙️ This rule is included in all of "plugin:vue/essential", "plugin:vue/strongly-recommended" and "plugin:vue/recommended".
  • 🔧 The --fix option on the command line can automatically fix some of the problems reported by this rule.

📖 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 black list few types of nodes, instead of white-listing 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.

<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>
Now loading...

🔧 Options

Nothing.

📚 Further reading

🔍 Implementation

Last Updated: 12/3/2018, 12:55:00 PM