bito-code-review[bot] commented on code in PR #39535:
URL: https://github.com/apache/superset/pull/39535#discussion_r3328567336


##########
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:
   <!-- Bito Reply -->
   The suggestion to remove the guard is valid in the context of runtime safety 
but invalidates TypeScript's type safety guarantees. The guard ensures type 
correctness under strict null checks, even if the runtime invariant suggests 
it's redundant. Removing it satisfies runtime expectations but introduces a 
type-checking violation. The reviewer's comment correctly identifies the need 
to preserve the guard for type safety.
   
   **superset-frontend/packages/superset-ui-core/src/utils/lruCache.ts**
   ```
   this.cache.delete(this.cache.keys().next().value);
   ```



-- 
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