# vue/no-required-prop-with-default

enforce props with default values ​​to be optional

# 📖 Rule Details

If a prop is declared with a default value, whether it is required or not, we can always skip it in actual use. In that situation, the default value would be applied. So, a required prop with a default value is essentially the same as an optional prop. This rule enforces all props with default values to be optional.

<script setup lang="ts"> /* ✓ GOOD */ const props = withDefaults( defineProps<{ name?: string | number age?: number }>(), { name: "Foo", } ); /* ✗ BAD */ const props = withDefaults( defineProps<{ name: string | number age?: number }>(), { name: "Foo", } ); </script>
Now loading...
<script> export default { /* ✓ GOOD */ props: { name: { required: true, default: 'Hello' } } /* ✗ BAD */ props: { name: { required: true, default: 'Hello' } } } </script>
Now loading...

# 🔧 Options

{
  "vue/no-required-prop-with-default": ["error", {
    "autofix": false,
  }]
}
  • "autofix" ... If true, enable autofix. (Default: false)

# 🔍 Implementation

Last Updated: 9/20/2022, 10:15:50 AM