mixinAsyncEvents<EventMap>
Mixin that adds AsyncEventSource delegation to a base class.
All event methods delegate to a private AsyncEventsBase instance. The EventMap generic is fixed at mixin-application time — if you need a class that is itself generic over its event map, use composition instead.
Import:
import { mixinAsyncEvents } from 'obsidian-dev-utils/async-events';Example:
interface MyEvents { save: [data: string];}class MyComponent extends mixinAsyncEvents<MyEvents>()(Component) { // on(), off(), once(), offref() are available}Signature:
function mixinAsyncEvents(): <TBase extends AbstractConstructor<object>>(baseClass: TBase) => AbstractConstructor<AsyncEventSource<EventMap> & AsyncEventTrigger<EventMap>> & TBaseReturns: <TBase extends AbstractConstructor<object>>(baseClass: TBase) => AbstractConstructor<AsyncEventSource<EventMap> & AsyncEventTrigger<EventMap>> & TBase — A function that takes a base class and returns a new class extending it with AsyncEventSource.
Example:
interface MyEvents { save: [data: string];}class MyComponent extends mixinAsyncEvents<MyEvents>()(Component) { // on(), off(), once(), offref() are available}