From bba3691da44c8c526228e672455a279e681c8af6 Mon Sep 17 00:00:00 2001 From: BilalWalker Date: Mon, 12 Oct 2026 15:19:24 +0500 Subject: [PATCH] Add TypeScript declaration for the queueMicrotask global React Native installs queueMicrotask on every app (setUpTimers.js), but src/types/globals.d.ts never declared it. TypeScript users without the DOM lib hit "Cannot find name 'queueMicrotask'". Declare it next to the other timer globals and cover it in the globals type test. --- .../react-native/__typetests__/globals.tsx | 18 ++++++++++++++++++ packages/react-native/src/types/globals.d.ts | 1 + 2 files changed, 19 insertions(+) diff --git a/packages/react-native/__typetests__/globals.tsx b/packages/react-native/__typetests__/globals.tsx index 1776431bedd1..69b6255eefd8 100644 --- a/packages/react-native/__typetests__/globals.tsx +++ b/packages/react-native/__typetests__/globals.tsx @@ -145,6 +145,24 @@ function testRequestAnimationFrame(){ ); } +function testQueueMicrotask() { + const result: void = queueMicrotask(noop); + console.log(result); + + queueMicrotask(() => { + console.log('microtask'); + }); + + // @ts-expect-error + queueMicrotask(); + + // @ts-expect-error + queueMicrotask('wrong-type'); + + // @ts-expect-error + queueMicrotask(noop, 'extra-arg'); +} + function testRequestIdleCallback() { cancelIdleCallback(null); cancelIdleCallback(undefined); diff --git a/packages/react-native/src/types/globals.d.ts b/packages/react-native/src/types/globals.d.ts index 2e5bf77c5786..e1a67d68ac75 100644 --- a/packages/react-native/src/types/globals.d.ts +++ b/packages/react-native/src/types/globals.d.ts @@ -184,6 +184,7 @@ declare global { handler: (...args: Args) => void, ...args: Args ): number; + function queueMicrotask(callback: () => void): void; function cancelAnimationFrame(handle: number | null | undefined): void; function requestAnimationFrame(callback: (time: number) => void): number;