# vue/define-emits-declaration

enforce declaration style of defineEmits

  • ❗️ This rule has not been released yet.

# 📖 Rule Details

This rule enforces defineEmits 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 emit = defineEmits<{ (e: 'change', id: number): void (e: 'update', value: string): void }>() /* ✗ BAD */ const emit = defineEmits(['change', 'update']) </script>
Now loading...

# 🔧 Options

  "vue/define-emits-declaration": ["error", "type-based" | "runtime"]
  • type-based (default) enforces type-based declaration
  • runtime enforces runtime declaration

# runtime

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

# 📚 Further Reading

# 🔍 Implementation