constructor(target, transaction) {
    /**
     * The type on which this event was created on.
     * @type {AbstractType<any>}
     */
    this.target = target;
    /**
     * The current target on which the observe callback is called.
     * @type {AbstractType<any>}
     */

    this.currentTarget = target;
    /**
     * The transaction that triggered this event.
     * @type {Transaction}
     */

    this.transaction = transaction;
    /**
     * @type {Object|null}
     */

    this._changes = null;
    /**
     * @type {null | Map<string, { action: 'add' | 'update' | 'delete', oldValue: any, newValue: any }>}
     */

    this._keys = null;
    /**
     * @type {null | Array<{ insert?: string | Array<any> | object | AbstractType<any>, retain?: number, delete?: number, attributes?: Object<string, any> }>}
     */

    this._delta = null;
  }
The type on which this event was created on.
@type {AbstractType<any>}