From baf9ee6a9350f1bfcdff67d51b11f20e2349f3ac Mon Sep 17 00:00:00 2001 From: Simon Seyock Date: Tue, 22 Jun 2021 17:37:55 +0200 Subject: [PATCH] Add `on` signatures for `BaseObject` and `Observable`. --- src/ol/Object.js | 6 ++++++ src/ol/ObjectEventType.js | 4 ++++ src/ol/Observable.js | 7 +++++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/ol/Object.js b/src/ol/Object.js index 0c14bc400a..72113a10c0 100644 --- a/src/ol/Object.js +++ b/src/ol/Object.js @@ -87,6 +87,12 @@ class BaseObject extends Observable { constructor(opt_values) { super(); + /*** + * @type {import("./Observable").OnSignature & + * import("./Observable").OnSignature} + */ + this.on; + // Call {@link module:ol/util.getUid} to ensure that the order of objects' ids is // the same as the order in which they were created. This also helps to // ensure that object properties are always added in the same order, which diff --git a/src/ol/ObjectEventType.js b/src/ol/ObjectEventType.js index 58dcb20f31..8e2d9996d2 100644 --- a/src/ol/ObjectEventType.js +++ b/src/ol/ObjectEventType.js @@ -13,3 +13,7 @@ export default { */ PROPERTYCHANGE: 'propertychange', }; + +/** + * @typedef {'propertychange'} Types + */ diff --git a/src/ol/Observable.js b/src/ol/Observable.js index ec33aee501..16c6ea3307 100644 --- a/src/ol/Observable.js +++ b/src/ol/Observable.js @@ -5,13 +5,16 @@ import EventTarget from './events/Target.js'; import EventType from './events/EventType.js'; import {listen, listenOnce, unlistenByKey} from './events.js'; - /*** * @template {string} Type * @template {Event|import("./events/Event.js").default} EventClass * @typedef {(type: Type|Type[], listener: (event: EventClass) => (void|boolean)) => import("./events.js").EventsKey|Array} OnSignature */ +/** + * @typedef {'change'|'error'} EventTypes + */ + /** * @classdesc * Abstract base class; normally only used for creating subclasses and not @@ -60,7 +63,7 @@ class Observable extends EventTarget { * @return {import("./events.js").EventsKey|Array} Unique key for the listener. If * called with an array of event types as the first argument, the return * will be an array of keys. - * @protected + * @api */ on(type, listener) { if (Array.isArray(type)) {