Vue · VUE0015

Prefer props destructure defaults

Finds Vue style code that should use the supported props destructure defaults pattern instead.
VUE0015vite-doctor/vuestylewarnSuggestion

Run this rule

pnpm vite-doctor . --framework vue --rules vue/style/prefer-props-destructure-defaults

Why it matters

Vue's reactive props destructure expresses defaults at the binding site and avoids a separate withDefaults() wrapper in supported Vue versions.

Use the Vue-supported props destructure defaults pattern instead.

Example

Use reactive props destructure defaults

Before

<script setup lang="ts">
withDefaults(defineProps<{ label?: string }>(), {
  label: 'Save',
})
</script>

After

<script setup lang="ts">
const { label = 'Save' } = defineProps<{ label?: string }>()
</script>
Copyright © 2026