Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix some more strict type check problems #15184

Merged
merged 1 commit into from Sep 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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