vlocode-project - v1.40.0-beta-4
    Preparing search index...

    Interface EventEmittingType<E, R>

    Strong typed utility interface that allows defining of emittable events based on an event definition type. Provides event type validation at design time making avoiding type errors at runtime

    Define all emittable events and their arguments in a new interface which extends the EventDefinitions type. Each function defined in the interface represents an event, the arguments of the method define the parameters that are emitted by the emitter and that can be expected by listeners.

    Usage sample:

    interface SalesforceConnectionEvents extends EventDefinitions {
    refresh(token: string): any;
    done(connection: this): any;
    }

    class SalesforceConnection implements EventEmittingType<SalesforceConnectionEvents> extends EventEmitter {
    }

    const c = new SalesforceConnection();
    c.on('refresh', (token) => console.log(token));
    c.emit('refresh', 'token');
    c.emit('done', c);
    interface EventEmittingType<E extends EventDefinitions, R = any> {
        addListener<K extends string | number | symbol>(
            eventName: K,
            listener: (...args: Parameters<E[K]>) => R,
        ): this;
        emit<K extends string | number | symbol>(
            eventName: K,
            listener: (...args: Parameters<E[K]>) => R,
        ): this;
        off<K extends string | number | symbol>(
            eventName: K,
            listener: (...args: any[]) => R,
        ): this;
        on<K extends string | number | symbol>(
            eventName: K,
            listener: (...args: Parameters<E[K]>) => R,
        ): this;
        once<K extends string | number | symbol>(
            eventName: K,
            listener: (...args: Parameters<E[K]>) => R,
        ): this;
        removeAllListeners<K extends string | number | symbol>(eventName?: K): this;
        removeListener<K extends string | number | symbol>(
            eventName: K,
            listener: (...args: any[]) => R,
        ): this;
    }

    Type Parameters

    Index

    Methods

    • Type Parameters

      • K extends string | number | symbol

      Parameters

      • eventName: K
      • listener: (...args: Parameters<E[K]>) => R

      Returns this

    • Type Parameters

      • K extends string | number | symbol

      Parameters

      • eventName: K
      • listener: (...args: Parameters<E[K]>) => R

      Returns this

    • Type Parameters

      • K extends string | number | symbol

      Parameters

      • eventName: K
      • listener: (...args: any[]) => R

      Returns this

    • Type Parameters

      • K extends string | number | symbol

      Parameters

      • eventName: K
      • listener: (...args: Parameters<E[K]>) => R

      Returns this

    • Type Parameters

      • K extends string | number | symbol

      Parameters

      • eventName: K
      • listener: (...args: Parameters<E[K]>) => R

      Returns this

    • Type Parameters

      • K extends string | number | symbol

      Parameters

      • OptionaleventName: K

      Returns this

    • Type Parameters

      • K extends string | number | symbol

      Parameters

      • eventName: K
      • listener: (...args: any[]) => R

      Returns this