rusackas commented on code in PR #39535:
URL: https://github.com/apache/superset/pull/39535#discussion_r3329564398


##########
superset-frontend/packages/superset-ui-core/src/utils/lruCache.ts:
##########
@@ -55,7 +55,12 @@ class LRUCache<T> {
       throw new TypeError('The LRUCache key must be string.');
     }
     if (this.cache.size >= this.capacity) {
-      this.cache.delete(this.cache.keys().next().value);
+      // Forward-compat: TS 6.0 types IteratorResult.value as `string | 
undefined`
+      // when not explicitly checked; guard before passing to Map#delete.
+      const oldestKey = this.cache.keys().next().value;
+      if (oldestKey !== undefined) {
+        this.cache.delete(oldestKey);
+      }

Review Comment:
   Declining the suggestion — the `if (oldestKey !== undefined)` guard is 
required for TypeScript 6.0 forward-compatibility: 
`Map.prototype.keys().next().value` is typed as `K | undefined` under the 
tightened iterator protocol, and the compiler cannot track the runtime 
non-empty invariant. This guard is precisely the purpose of the PR. This is a 
loop artifact from `/resolve` not being supported on inline comments.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to