pageClass | sidebarDepth | title | description |
---|---|---|---|
rule-details |
0 |
vue/define-props-declaration |
enforce declaration style of `defineProps` |
enforce declaration style of
defineProps
- ❗ This rule has not been released yet.
This rule enforces defineProps
typing style which you should use type-based
or runtime
declaration.
This rule only works in setup script and lang="ts"
.
<script setup lang="ts">
/* ✓ GOOD */
const props = defineProps<{
kind: string
}>()
/* ✗ BAD */
const props = defineProps({
kind: { type: String }
})
</script>
"vue/define-props-declaration": ["error", "type-based" | "runtime"]
type-based
(default) enforces type-based declarationruntime
enforces runtime declaration
<script setup lang="ts">
/* ✗ BAD */
const emit = defineEmits<{
(e: 'change', id: number): void
(e: 'update', value: string): void
}>()
/* ✓ GOOD */
const emit = defineEmits(['change', 'update'])
</script>