Skip to content

Commit

Permalink
Merge pull request #15184 from MoonE/more-strict-types
Browse files Browse the repository at this point in the history
Fix some more strict type check problems
  • Loading branch information
MoonE committed Sep 26, 2023
2 parents c40d31a + a263823 commit c1efd0a
Show file tree
Hide file tree
Showing 12 changed files with 86 additions and 127 deletions.
25 changes: 0 additions & 25 deletions config/tsconfig-strict.json
Expand Up @@ -25,7 +25,6 @@
"../src/ol/control/ZoomToExtent.js",
"../src/ol/coordinate.js",
"../src/ol/DataTile.js",
"../src/ol/dom.js",
"../src/ol/events.js",
"../src/ol/events/condition.js",
"../src/ol/events/Event.js",
Expand All @@ -40,28 +39,11 @@
"../src/ol/format/EsriJSON.js",
"../src/ol/format/Feature.js",
"../src/ol/format/filter.js",
"../src/ol/format/filter/And.js",
"../src/ol/format/filter/Bbox.js",
"../src/ol/format/filter/Comparison.js",
"../src/ol/format/filter/ComparisonBinary.js",
"../src/ol/format/filter/Contains.js",
"../src/ol/format/filter/Disjoint.js",
"../src/ol/format/filter/During.js",
"../src/ol/format/filter/DWithin.js",
"../src/ol/format/filter/EqualTo.js",
"../src/ol/format/filter/GreaterThan.js",
"../src/ol/format/filter/GreaterThanOrEqualTo.js",
"../src/ol/format/filter/Intersects.js",
"../src/ol/format/filter/IsBetween.js",
"../src/ol/format/filter/IsLike.js",
"../src/ol/format/filter/IsNull.js",
"../src/ol/format/filter/LessThan.js",
"../src/ol/format/filter/LessThanOrEqualTo.js",
"../src/ol/format/filter/LogicalNary.js",
"../src/ol/format/filter/Not.js",
"../src/ol/format/filter/NotEqualTo.js",
"../src/ol/format/filter/Or.js",
"../src/ol/format/filter/ResourceId.js",
"../src/ol/format/filter/Spatial.js",
"../src/ol/format/filter/Within.js",
"../src/ol/format/GeoJSON.js",
Expand Down Expand Up @@ -95,21 +77,18 @@
"../src/ol/geom.js",
"../src/ol/geom/Circle.js",
"../src/ol/geom/flat/center.js",
"../src/ol/geom/flat/closest.js",
"../src/ol/geom/flat/contains.js",
"../src/ol/geom/flat/deflate.js",
"../src/ol/geom/flat/geodesic.js",
"../src/ol/geom/flat/inflate.js",
"../src/ol/geom/flat/interiorpoint.js",
"../src/ol/geom/flat/interpolate.js",
"../src/ol/geom/flat/intersectsextent.js",
"../src/ol/geom/flat/linechunk.js",
"../src/ol/geom/flat/orient.js",
"../src/ol/geom/flat/segments.js",
"../src/ol/geom/flat/simplify.js",
"../src/ol/geom/flat/straightchunk.js",
"../src/ol/geom/flat/textpath.js",
"../src/ol/geom/flat/topology.js",
"../src/ol/geom/flat/transform.js",
"../src/ol/geom/Geometry.js",
"../src/ol/geom/GeometryCollection.js",
Expand All @@ -121,7 +100,6 @@
"../src/ol/geom/Point.js",
"../src/ol/geom/Polygon.js",
"../src/ol/geom/SimpleGeometry.js",
"../src/ol/has.js",
"../src/ol/Image.js",
"../src/ol/ImageCanvas.js",
"../src/ol/ImageTile.js",
Expand Down Expand Up @@ -170,10 +148,8 @@
"../src/ol/Map.js",
"../src/ol/MapBrowserEvent.js",
"../src/ol/MapBrowserEventHandler.js",
"../src/ol/MapBrowserEventType.js",
"../src/ol/MapEvent.js",
"../src/ol/net.js",
"../src/ol/obj.js",
"../src/ol/Object.js",
"../src/ol/Observable.js",
"../src/ol/Overlay.js",
Expand Down Expand Up @@ -270,7 +246,6 @@
"../src/ol/sphere.js",
"../src/ol/structs/LinkedList.js",
"../src/ol/structs/LRUCache.js",
"../src/ol/structs/PriorityQueue.js",
"../src/ol/structs/RBush.js",
"../src/ol/style.js",
"../src/ol/style/Circle.js",
Expand Down
2 changes: 1 addition & 1 deletion src/ol/Object.js
Expand Up @@ -117,7 +117,7 @@ class BaseObject extends Observable {

/**
* @private
* @type {Object<string, *>}
* @type {Object<string, *>|null}
*/
this.values_ = null;

Expand Down
2 changes: 1 addition & 1 deletion src/ol/dom.js
Expand Up @@ -17,7 +17,7 @@ export function createCanvasContext2D(width, height, canvasPool, settings) {
/** @type {HTMLCanvasElement|OffscreenCanvas} */
let canvas;
if (canvasPool && canvasPool.length) {
canvas = canvasPool.shift();
canvas = /** @type {HTMLCanvasElement} */ (canvasPool.shift());
} else if (WORKER_OFFSCREEN_CANVAS) {
canvas = new OffscreenCanvas(width || 300, height || 300);
} else {
Expand Down
36 changes: 20 additions & 16 deletions src/ol/events/Target.js
Expand Up @@ -40,19 +40,19 @@ class Target extends Disposable {

/**
* @private
* @type {Object<string, number>}
* @type {Object<string, number>|null}
*/
this.pendingRemovals_ = null;

/**
* @private
* @type {Object<string, number>}
* @type {Object<string, number>|null}
*/
this.dispatching_ = null;

/**
* @private
* @type {Object<string, Array<import("../events.js").Listener>>}
* @type {Object<string, Array<import("../events.js").Listener>>|null}
*/
this.listeners_ = null;
}
Expand Down Expand Up @@ -166,19 +166,23 @@ class Target extends Disposable {
* @param {import("../events.js").Listener} listener Listener.
*/
removeEventListener(type, listener) {
const listeners = this.listeners_ && this.listeners_[type];
if (listeners) {
const index = listeners.indexOf(listener);
if (index !== -1) {
if (this.pendingRemovals_ && type in this.pendingRemovals_) {
// make listener a no-op, and remove later in #dispatchEvent()
listeners[index] = VOID;
++this.pendingRemovals_[type];
} else {
listeners.splice(index, 1);
if (listeners.length === 0) {
delete this.listeners_[type];
}
if (!this.listeners_) {
return;
}
const listeners = this.listeners_[type];
if (!listeners) {
return;
}
const index = listeners.indexOf(listener);
if (index !== -1) {
if (this.pendingRemovals_ && type in this.pendingRemovals_) {
// make listener a no-op, and remove later in #dispatchEvent()
listeners[index] = VOID;
++this.pendingRemovals_[type];
} else {
listeners.splice(index, 1);
if (listeners.length === 0) {
delete this.listeners_[type];
}
}
}
Expand Down
2 changes: 2 additions & 0 deletions src/ol/has.js
Expand Up @@ -85,7 +85,9 @@ export const PASSIVE_EVENT_LISTENERS = (function () {
},
});

// @ts-ignore Ignore invalid event type '_'
window.addEventListener('_', null, options);
// @ts-ignore Ignore invalid event type '_'
window.removeEventListener('_', null, options);
} catch (error) {
// passive not supported
Expand Down
2 changes: 1 addition & 1 deletion src/ol/obj.js
Expand Up @@ -4,7 +4,7 @@

/**
* Removes all properties from an object.
* @param {Object} object The object to clear.
* @param {Object<string, unknown>} object The object to clear.
*/
export function clear(object) {
for (const property in object) {
Expand Down
6 changes: 3 additions & 3 deletions src/ol/render/canvas/style.js
Expand Up @@ -199,7 +199,7 @@ export function buildRuleSet(rules, context) {
}

/**
* @typedef {function(EvaluationContext):Style} StyleEvaluator
* @typedef {function(EvaluationContext):Style|null} StyleEvaluator
*/

/**
Expand Down Expand Up @@ -272,7 +272,7 @@ export function buildStyle(flatStyle, context) {
}

/**
* @typedef {function(EvaluationContext):Fill} FillEvaluator
* @typedef {function(EvaluationContext):Fill|null} FillEvaluator
*/

/**
Expand Down Expand Up @@ -303,7 +303,7 @@ function buildFill(flatStyle, prefix, context) {
}

/**
* @typedef {function(EvaluationContext):Stroke} StrokeEvaluator
* @typedef {function(EvaluationContext):Stroke|null} StrokeEvaluator
*/

/**
Expand Down
4 changes: 2 additions & 2 deletions src/ol/structs/PriorityQueue.js
Expand Up @@ -79,8 +79,8 @@ class PriorityQueue {
elements.length = 0;
priorities.length = 0;
} else {
elements[0] = elements.pop();
priorities[0] = priorities.pop();
elements[0] = /** @type {T} */ (elements.pop());
priorities[0] = /** @type {number} */ (priorities.pop());
this.siftUp_(0);
}
const elementKey = this.keyFunction_(element);
Expand Down

0 comments on commit c1efd0a

Please sign in to comment.