Skip to content

Define emits with TypeScript ​

Use the type-based declaration syntax instead of runtime declaration. This provides better type safety and IDE support for emitted events. The type-based syntax allows TypeScript to infer correct types for the emit function and validate event payloads at compile time.

Type-based syntax: const emit = defineEmits<{ eventName: [payload: Type] }>() Runtime syntax: const emit = defineEmits(['eventName']) (avoid in TypeScript)

Rule for AI agents ​

- ALWAYS use type-based syntax for defineEmits in TypeScript instead of runtime array syntax

Eslint rule ​

Source ​