Skip to content

Type Alias: ExtractEventNamesFromProps<T>

ts
type ExtractEventNamesFromProps<T> = {
  [K in keyof T]: K extends `on${infer Event}`
    ? Event extends `Vnode${string}` | `$${string}`
      ? never
      : Event extends `${infer Prefix}:${infer Suffix}`
        ? `${Uncapitalize<Prefix>}:${Suffix}`
        : Uncapitalize<Event>
    : never;
}[keyof T];

Helper to extract event names from emit handler props (onEventName format). Converts prop names like 'onUpdate:modelValue' or 'onUpdateModelValue' to event names. Filters out Vue internal events (vnode*, $*).

Type Parameters

Type Parameter
T