Skip to content

CallbackArguments<EventMap, EventName>

Resolves callback argument types for an event.

  • When EventMap has an index signature (untyped default): returns unknown[], allowing Args to be inferred freely from the callback. - When EventMap has explicit keys only (typed map): returns EventMap[EventName], enforcing the declared argument types and enabling autocomplete.

Import:

import type { CallbackArguments } from 'obsidian-dev-utils/async-events';

Signature:

export type CallbackArguments<EventMap, EventName extends string>

Signature:

type CallbackArguments<EventMap, EventName> = string extends keyof EventMap ? unknown[]
: (EventName extends keyof EventMap ? EventMap[EventName] : unknown[])

Type: string extends keyof EventMap ? unknown[] : (EventName extends keyof EventMap ? EventMap[EventName] : unknown[])