# vue/require-prop-type-constructor

require prop type to be a constructor

  • ⚙️ This rule is included in all of "plugin:vue/vue3-essential", "plugin:vue/essential", "plugin:vue/vue3-strongly-recommended", "plugin:vue/strongly-recommended", "plugin:vue/vue3-recommended" and "plugin:vue/recommended".
  • 🔧 The --fix option on the command line (opens new window) 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 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.

<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

# 🚀 Version

This rule was introduced in eslint-plugin-vue v5.0.0

# 🔍 Implementation

Last Updated: 12/24/2020, 2:51:18 AM