jest: [Bug]: 27.4.0 TypeScript typechecking fails for `@types/jsdom` when run without DOM lib

Version

27.4.0

Steps to reproduce

See repo at https://github.com/ryanvanoss/jest-27.4-types:

git clone git@github.com:ryanvanoss/jest-27.4-types.git
npm i .
# The main branch pins @jest/* and jest* to 27.3.1; typechecking succeeds
npm run types

# This branch uses jest@27.4.0; typechecking fails
git checkout jest-27.4
git clean -dfx
npm i .
npm run types

# This branch uses jest@27.4.0 and adds ["DOM"] to tsconfig.json's lib configuration; typechecking succeeds
git checkout jest-27.4-with-DOM
git clean -dfx
npm i .
npm run types

Expected behavior

Typechecking should succeed

Actual behavior

Typechecking fails due to missing DOM types:

Click to view failiures
node_modules/@types/jsdom/base.d.ts:24:40 - error TS2304: Cannot find name 'DocumentFragment'.

24         static fragment(html: string): DocumentFragment;
                                          ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:41:28 - error TS2304: Cannot find name 'Node'.

41         nodeLocation(node: Node): ElementLocation | null;
                              ~~~~

node_modules/@types/jsdom/base.d.ts:172:19 - error TS2304: Cannot find name 'HTMLScriptElement'.

172         element?: HTMLScriptElement | HTMLLinkElement | HTMLIFrameElement | HTMLImageElement | undefined;
                      ~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:172:39 - error TS2304: Cannot find name 'HTMLLinkElement'.

172         element?: HTMLScriptElement | HTMLLinkElement | HTMLIFrameElement | HTMLImageElement | undefined;
                                          ~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:172:57 - error TS2304: Cannot find name 'HTMLIFrameElement'.

172         element?: HTMLScriptElement | HTMLLinkElement | HTMLIFrameElement | HTMLImageElement | undefined;
                                                            ~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:172:77 - error TS2304: Cannot find name 'HTMLImageElement'.

172         element?: HTMLScriptElement | HTMLLinkElement | HTMLIFrameElement | HTMLImageElement | undefined;
                                                                                ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:181:38 - error TS2304: Cannot find name 'Window'.

181     interface DOMWindow extends Omit<Window, "top" | "self" | "window"> {
                                         ~~~~~~

node_modules/@types/jsdom/base.d.ts:185:24 - error TS2304: Cannot find name 'Window'.

185         Window: typeof Window;
                           ~~~~~~

node_modules/@types/jsdom/base.d.ts:250:29 - error TS2304: Cannot find name 'WebAssembly'.

250         WebAssembly: typeof WebAssembly;
                                ~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:253:30 - error TS2304: Cannot find name 'DOMException'.

253         DOMException: typeof DOMException;
                                 ~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:255:21 - error TS2304: Cannot find name 'URL'.

255         URL: typeof URL;
                        ~~~

node_modules/@types/jsdom/base.d.ts:256:33 - error TS2304: Cannot find name 'URLSearchParams'.

256         URLSearchParams: typeof URLSearchParams;
                                    ~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:258:29 - error TS2304: Cannot find name 'EventTarget'.

258         EventTarget: typeof EventTarget;
                                ~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:260:30 - error TS2304: Cannot find name 'NamedNodeMap'.

260         NamedNodeMap: typeof NamedNodeMap;
                                 ~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:261:22 - error TS2304: Cannot find name 'Node'.

261         Node: typeof Node;
                         ~~~~

node_modules/@types/jsdom/base.d.ts:262:22 - error TS2304: Cannot find name 'Attr'.

262         Attr: typeof Attr;
                         ~~~~

node_modules/@types/jsdom/base.d.ts:263:25 - error TS2304: Cannot find name 'Element'.

263         Element: typeof Element;
                            ~~~~~~~

node_modules/@types/jsdom/base.d.ts:264:34 - error TS2304: Cannot find name 'DocumentFragment'.

264         DocumentFragment: typeof DocumentFragment;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:265:35 - error TS2304: Cannot find name 'DOMImplementation'.

265         DOMImplementation: typeof DOMImplementation;
                                      ~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:266:26 - error TS2304: Cannot find name 'Document'.

266         Document: typeof Document;
                             ~~~~~~~~

node_modules/@types/jsdom/base.d.ts:267:30 - error TS2304: Cannot find name 'HTMLDocument'.

267         HTMLDocument: typeof HTMLDocument;
                                 ~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:268:29 - error TS2304: Cannot find name 'XMLDocument'.

268         XMLDocument: typeof XMLDocument;
                                ~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:269:31 - error TS2304: Cannot find name 'CharacterData'.

269         CharacterData: typeof CharacterData;
                                  ~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:270:22 - error TS2304: Cannot find name 'Text'.

270         Text: typeof Text;
                         ~~~~

node_modules/@types/jsdom/base.d.ts:271:30 - error TS2304: Cannot find name 'CDATASection'.

271         CDATASection: typeof CDATASection;
                                 ~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:272:39 - error TS2304: Cannot find name 'ProcessingInstruction'.

272         ProcessingInstruction: typeof ProcessingInstruction;
                                          ~~~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:273:25 - error TS2304: Cannot find name 'Comment'.

273         Comment: typeof Comment;
                            ~~~~~~~

node_modules/@types/jsdom/base.d.ts:274:30 - error TS2304: Cannot find name 'DocumentType'.

274         DocumentType: typeof DocumentType;
                                 ~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:275:26 - error TS2304: Cannot find name 'NodeList'.

275         NodeList: typeof NodeList;
                             ~~~~~~~~

node_modules/@types/jsdom/base.d.ts:276:32 - error TS2304: Cannot find name 'HTMLCollection'.

276         HTMLCollection: typeof HTMLCollection;
                                   ~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:277:39 - error TS2304: Cannot find name 'HTMLOptionsCollection'.

277         HTMLOptionsCollection: typeof HTMLOptionsCollection;
                                          ~~~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:278:30 - error TS2304: Cannot find name 'DOMStringMap'.

278         DOMStringMap: typeof DOMStringMap;
                                 ~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:279:30 - error TS2304: Cannot find name 'DOMTokenList'.

279         DOMTokenList: typeof DOMTokenList;
                                 ~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:281:32 - error TS2304: Cannot find name 'StyleSheetList'.

281         StyleSheetList: typeof StyleSheetList;
                                   ~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:283:29 - error TS2304: Cannot find name 'HTMLElement'.

283         HTMLElement: typeof HTMLElement;
                                ~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:284:33 - error TS2304: Cannot find name 'HTMLHeadElement'.

284         HTMLHeadElement: typeof HTMLHeadElement;
                                    ~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:285:34 - error TS2304: Cannot find name 'HTMLTitleElement'.

285         HTMLTitleElement: typeof HTMLTitleElement;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:286:33 - error TS2304: Cannot find name 'HTMLBaseElement'.

286         HTMLBaseElement: typeof HTMLBaseElement;
                                    ~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:287:33 - error TS2304: Cannot find name 'HTMLLinkElement'.

287         HTMLLinkElement: typeof HTMLLinkElement;
                                    ~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:288:33 - error TS2304: Cannot find name 'HTMLMetaElement'.

288         HTMLMetaElement: typeof HTMLMetaElement;
                                    ~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:289:34 - error TS2304: Cannot find name 'HTMLStyleElement'.

289         HTMLStyleElement: typeof HTMLStyleElement;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:290:33 - error TS2304: Cannot find name 'HTMLBodyElement'.

290         HTMLBodyElement: typeof HTMLBodyElement;
                                    ~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:291:36 - error TS2304: Cannot find name 'HTMLHeadingElement'.

291         HTMLHeadingElement: typeof HTMLHeadingElement;
                                       ~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:292:38 - error TS2304: Cannot find name 'HTMLParagraphElement'.

292         HTMLParagraphElement: typeof HTMLParagraphElement;
                                         ~~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:293:31 - error TS2304: Cannot find name 'HTMLHRElement'.

293         HTMLHRElement: typeof HTMLHRElement;
                                  ~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:294:32 - error TS2304: Cannot find name 'HTMLPreElement'.

294         HTMLPreElement: typeof HTMLPreElement;
                                   ~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:295:34 - error TS2304: Cannot find name 'HTMLUListElement'.

295         HTMLUListElement: typeof HTMLUListElement;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:296:34 - error TS2304: Cannot find name 'HTMLOListElement'.

296         HTMLOListElement: typeof HTMLOListElement;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:297:31 - error TS2304: Cannot find name 'HTMLLIElement'.

297         HTMLLIElement: typeof HTMLLIElement;
                                  ~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:298:33 - error TS2304: Cannot find name 'HTMLMenuElement'.

298         HTMLMenuElement: typeof HTMLMenuElement;
                                    ~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:299:34 - error TS2304: Cannot find name 'HTMLDListElement'.

299         HTMLDListElement: typeof HTMLDListElement;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:300:32 - error TS2304: Cannot find name 'HTMLDivElement'.

300         HTMLDivElement: typeof HTMLDivElement;
                                   ~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:301:35 - error TS2304: Cannot find name 'HTMLAnchorElement'.

301         HTMLAnchorElement: typeof HTMLAnchorElement;
                                      ~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:302:33 - error TS2304: Cannot find name 'HTMLAreaElement'.

302         HTMLAreaElement: typeof HTMLAreaElement;
                                    ~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:303:31 - error TS2304: Cannot find name 'HTMLBRElement'.

303         HTMLBRElement: typeof HTMLBRElement;
                                  ~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:304:35 - error TS2304: Cannot find name 'HTMLButtonElement'.

304         HTMLButtonElement: typeof HTMLButtonElement;
                                      ~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:305:35 - error TS2304: Cannot find name 'HTMLCanvasElement'.

305         HTMLCanvasElement: typeof HTMLCanvasElement;
                                      ~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:306:33 - error TS2304: Cannot find name 'HTMLDataElement'.

306         HTMLDataElement: typeof HTMLDataElement;
                                    ~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:307:37 - error TS2304: Cannot find name 'HTMLDataListElement'.

307         HTMLDataListElement: typeof HTMLDataListElement;
                                        ~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:308:36 - error TS2304: Cannot find name 'HTMLDetailsElement'.

308         HTMLDetailsElement: typeof HTMLDetailsElement;
                                       ~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:310:20 - error TS2304: Cannot find name 'HTMLDialogElement'.

310             new(): HTMLDialogElement;
                       ~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:311:33 - error TS2304: Cannot find name 'HTMLDialogElement'.

311             readonly prototype: HTMLDialogElement;
                                    ~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:313:38 - error TS2304: Cannot find name 'HTMLDirectoryElement'.

313         HTMLDirectoryElement: typeof HTMLDirectoryElement;
                                         ~~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:314:37 - error TS2304: Cannot find name 'HTMLFieldSetElement'.

314         HTMLFieldSetElement: typeof HTMLFieldSetElement;
                                        ~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:315:33 - error TS2304: Cannot find name 'HTMLFontElement'.

315         HTMLFontElement: typeof HTMLFontElement;
                                    ~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:316:33 - error TS2304: Cannot find name 'HTMLFormElement'.

316         HTMLFormElement: typeof HTMLFormElement;
                                    ~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:317:33 - error TS2304: Cannot find name 'HTMLHtmlElement'.

317         HTMLHtmlElement: typeof HTMLHtmlElement;
                                    ~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:318:34 - error TS2304: Cannot find name 'HTMLImageElement'.

318         HTMLImageElement: typeof HTMLImageElement;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:319:34 - error TS2304: Cannot find name 'HTMLInputElement'.

319         HTMLInputElement: typeof HTMLInputElement;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:320:34 - error TS2304: Cannot find name 'HTMLLabelElement'.

320         HTMLLabelElement: typeof HTMLLabelElement;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:321:35 - error TS2304: Cannot find name 'HTMLLegendElement'.

321         HTMLLegendElement: typeof HTMLLegendElement;
                                      ~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:322:32 - error TS2304: Cannot find name 'HTMLMapElement'.

322         HTMLMapElement: typeof HTMLMapElement;
                                   ~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:323:36 - error TS2304: Cannot find name 'HTMLMarqueeElement'.

323         HTMLMarqueeElement: typeof HTMLMarqueeElement;
                                       ~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:324:34 - error TS2304: Cannot find name 'HTMLMediaElement'.

324         HTMLMediaElement: typeof HTMLMediaElement;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:325:34 - error TS2304: Cannot find name 'HTMLMeterElement'.

325         HTMLMeterElement: typeof HTMLMeterElement;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:326:32 - error TS2304: Cannot find name 'HTMLModElement'.

326         HTMLModElement: typeof HTMLModElement;
                                   ~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:327:37 - error TS2304: Cannot find name 'HTMLOptGroupElement'.

327         HTMLOptGroupElement: typeof HTMLOptGroupElement;
                                        ~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:328:35 - error TS2304: Cannot find name 'HTMLOptionElement'.

328         HTMLOptionElement: typeof HTMLOptionElement;
                                      ~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:329:35 - error TS2304: Cannot find name 'HTMLOutputElement'.

329         HTMLOutputElement: typeof HTMLOutputElement;
                                      ~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:330:36 - error TS2304: Cannot find name 'HTMLPictureElement'.

330         HTMLPictureElement: typeof HTMLPictureElement;
                                       ~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:331:37 - error TS2304: Cannot find name 'HTMLProgressElement'.

331         HTMLProgressElement: typeof HTMLProgressElement;
                                        ~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:332:34 - error TS2304: Cannot find name 'HTMLQuoteElement'.

332         HTMLQuoteElement: typeof HTMLQuoteElement;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:333:35 - error TS2304: Cannot find name 'HTMLScriptElement'.

333         HTMLScriptElement: typeof HTMLScriptElement;
                                      ~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:334:35 - error TS2304: Cannot find name 'HTMLSelectElement'.

334         HTMLSelectElement: typeof HTMLSelectElement;
                                      ~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:335:33 - error TS2304: Cannot find name 'HTMLSlotElement'.

335         HTMLSlotElement: typeof HTMLSlotElement;
                                    ~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:336:35 - error TS2304: Cannot find name 'HTMLSourceElement'.

336         HTMLSourceElement: typeof HTMLSourceElement;
                                      ~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:337:33 - error TS2304: Cannot find name 'HTMLSpanElement'.

337         HTMLSpanElement: typeof HTMLSpanElement;
                                    ~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:338:41 - error TS2304: Cannot find name 'HTMLTableCaptionElement'.

338         HTMLTableCaptionElement: typeof HTMLTableCaptionElement;
                                            ~~~~~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:339:38 - error TS2304: Cannot find name 'HTMLTableCellElement'.

339         HTMLTableCellElement: typeof HTMLTableCellElement;
                                         ~~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:340:37 - error TS2304: Cannot find name 'HTMLTableColElement'.

340         HTMLTableColElement: typeof HTMLTableColElement;
                                        ~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:341:34 - error TS2304: Cannot find name 'HTMLTableElement'.

341         HTMLTableElement: typeof HTMLTableElement;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:342:33 - error TS2304: Cannot find name 'HTMLTimeElement'.

342         HTMLTimeElement: typeof HTMLTimeElement;
                                    ~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:343:37 - error TS2304: Cannot find name 'HTMLTableRowElement'.

343         HTMLTableRowElement: typeof HTMLTableRowElement;
                                        ~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:344:41 - error TS2304: Cannot find name 'HTMLTableSectionElement'.

344         HTMLTableSectionElement: typeof HTMLTableSectionElement;
                                            ~~~~~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:345:37 - error TS2304: Cannot find name 'HTMLTemplateElement'.

345         HTMLTemplateElement: typeof HTMLTemplateElement;
                                        ~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:346:37 - error TS2304: Cannot find name 'HTMLTextAreaElement'.

346         HTMLTextAreaElement: typeof HTMLTextAreaElement;
                                        ~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:347:36 - error TS2304: Cannot find name 'HTMLUnknownElement'.

347         HTMLUnknownElement: typeof HTMLUnknownElement;
                                       ~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:348:34 - error TS2304: Cannot find name 'HTMLFrameElement'.

348         HTMLFrameElement: typeof HTMLFrameElement;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:349:37 - error TS2304: Cannot find name 'HTMLFrameSetElement'.

349         HTMLFrameSetElement: typeof HTMLFrameSetElement;
                                        ~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:350:35 - error TS2304: Cannot find name 'HTMLIFrameElement'.

350         HTMLIFrameElement: typeof HTMLIFrameElement;
                                      ~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:351:34 - error TS2304: Cannot find name 'HTMLEmbedElement'.

351         HTMLEmbedElement: typeof HTMLEmbedElement;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:352:35 - error TS2304: Cannot find name 'HTMLObjectElement'.

352         HTMLObjectElement: typeof HTMLObjectElement;
                                      ~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:353:34 - error TS2304: Cannot find name 'HTMLParamElement'.

353         HTMLParamElement: typeof HTMLParamElement;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:354:34 - error TS2304: Cannot find name 'HTMLVideoElement'.

354         HTMLVideoElement: typeof HTMLVideoElement;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:355:34 - error TS2304: Cannot find name 'HTMLAudioElement'.

355         HTMLAudioElement: typeof HTMLAudioElement;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:356:34 - error TS2304: Cannot find name 'HTMLTrackElement'.

356         HTMLTrackElement: typeof HTMLTrackElement;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:358:28 - error TS2304: Cannot find name 'SVGElement'.

358         SVGElement: typeof SVGElement;
                               ~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:359:36 - error TS2304: Cannot find name 'SVGGraphicsElement'.

359         SVGGraphicsElement: typeof SVGGraphicsElement;
                                       ~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:360:31 - error TS2304: Cannot find name 'SVGSVGElement'.

360         SVGSVGElement: typeof SVGSVGElement;
                                  ~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:361:33 - error TS2304: Cannot find name 'SVGTitleElement'.

361         SVGTitleElement: typeof SVGTitleElement;
                                    ~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:362:35 - error TS2304: Cannot find name 'SVGAnimatedString'.

362         SVGAnimatedString: typeof SVGAnimatedString;
                                      ~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:363:27 - error TS2304: Cannot find name 'SVGNumber'.

363         SVGNumber: typeof SVGNumber;
                              ~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:364:31 - error TS2304: Cannot find name 'SVGStringList'.

364         SVGStringList: typeof SVGStringList;
                                  ~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:366:23 - error TS2304: Cannot find name 'Event'.

366         Event: typeof Event;
                          ~~~~~

node_modules/@types/jsdom/base.d.ts:367:28 - error TS2304: Cannot find name 'CloseEvent'.

367         CloseEvent: typeof CloseEvent;
                               ~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:368:29 - error TS2304: Cannot find name 'CustomEvent'.

368         CustomEvent: typeof CustomEvent;
                                ~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:369:30 - error TS2304: Cannot find name 'MessageEvent'.

369         MessageEvent: typeof MessageEvent;
                                 ~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:370:28 - error TS2304: Cannot find name 'ErrorEvent'.

370         ErrorEvent: typeof ErrorEvent;
                               ~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:371:33 - error TS2304: Cannot find name 'HashChangeEvent'.

371         HashChangeEvent: typeof HashChangeEvent;
                                    ~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:372:31 - error TS2304: Cannot find name 'PopStateEvent'.

372         PopStateEvent: typeof PopStateEvent;
                                  ~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:373:30 - error TS2304: Cannot find name 'StorageEvent'.

373         StorageEvent: typeof StorageEvent;
                                 ~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:374:31 - error TS2304: Cannot find name 'ProgressEvent'.

374         ProgressEvent: typeof ProgressEvent;
                                  ~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:375:37 - error TS2304: Cannot find name 'PageTransitionEvent'.

375         PageTransitionEvent: typeof PageTransitionEvent;
                                        ~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:377:25 - error TS2304: Cannot find name 'UIEvent'.

377         UIEvent: typeof UIEvent;
                            ~~~~~~~

node_modules/@types/jsdom/base.d.ts:378:28 - error TS2304: Cannot find name 'FocusEvent'.

378         FocusEvent: typeof FocusEvent;
                               ~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:379:28 - error TS2304: Cannot find name 'MouseEvent'.

379         MouseEvent: typeof MouseEvent;
                               ~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:380:31 - error TS2304: Cannot find name 'KeyboardEvent'.

380         KeyboardEvent: typeof KeyboardEvent;
                                  ~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:381:28 - error TS2304: Cannot find name 'TouchEvent'.

381         TouchEvent: typeof TouchEvent;
                               ~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:382:34 - error TS2304: Cannot find name 'CompositionEvent'.

382         CompositionEvent: typeof CompositionEvent;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:383:28 - error TS2304: Cannot find name 'WheelEvent'.

383         WheelEvent: typeof WheelEvent;
                               ~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:385:25 - error TS2304: Cannot find name 'BarProp'.

385         BarProp: typeof BarProp;
                            ~~~~~~~

node_modules/@types/jsdom/base.d.ts:386:26 - error TS2304: Cannot find name 'Location'.

386         Location: typeof Location;
                             ~~~~~~~~

node_modules/@types/jsdom/base.d.ts:387:25 - error TS2304: Cannot find name 'History'.

387         History: typeof History;
                            ~~~~~~~

node_modules/@types/jsdom/base.d.ts:388:24 - error TS2304: Cannot find name 'Screen'.

388         Screen: typeof Screen;
                           ~~~~~~

node_modules/@types/jsdom/base.d.ts:389:29 - error TS2304: Cannot find name 'Performance'.

389         Performance: typeof Performance;
                                ~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:390:27 - error TS2304: Cannot find name 'Navigator'.

390         Navigator: typeof Navigator;
                              ~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:392:29 - error TS2304: Cannot find name 'PluginArray'.

392         PluginArray: typeof PluginArray;
                                ~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:393:31 - error TS2304: Cannot find name 'MimeTypeArray'.

393         MimeTypeArray: typeof MimeTypeArray;
                                  ~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:394:24 - error TS2304: Cannot find name 'Plugin'.

394         Plugin: typeof Plugin;
                           ~~~~~~

node_modules/@types/jsdom/base.d.ts:395:26 - error TS2304: Cannot find name 'MimeType'.

395         MimeType: typeof MimeType;
                             ~~~~~~~~

node_modules/@types/jsdom/base.d.ts:397:28 - error TS2304: Cannot find name 'FileReader'.

397         FileReader: typeof FileReader;
                               ~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:398:22 - error TS2693: 'Blob' only refers to a type, but is being used as a value here.

398         Blob: typeof Blob;
                         ~~~~

node_modules/@types/jsdom/base.d.ts:399:22 - error TS2304: Cannot find name 'File'.

399         File: typeof File;
                         ~~~~

node_modules/@types/jsdom/base.d.ts:400:26 - error TS2304: Cannot find name 'FileList'.

400         FileList: typeof FileList;
                             ~~~~~~~~

node_modules/@types/jsdom/base.d.ts:401:31 - error TS2304: Cannot find name 'ValidityState'.

401         ValidityState: typeof ValidityState;
                                  ~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:403:27 - error TS2304: Cannot find name 'DOMParser'.

403         DOMParser: typeof DOMParser;
                              ~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:404:31 - error TS2304: Cannot find name 'XMLSerializer'.

404         XMLSerializer: typeof XMLSerializer;
                                  ~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:406:26 - error TS2304: Cannot find name 'FormData'.

406         FormData: typeof FormData;
                             ~~~~~~~~

node_modules/@types/jsdom/base.d.ts:407:43 - error TS2304: Cannot find name 'XMLHttpRequestEventTarget'.

407         XMLHttpRequestEventTarget: typeof XMLHttpRequestEventTarget;
                                              ~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:408:38 - error TS2304: Cannot find name 'XMLHttpRequestUpload'.

408         XMLHttpRequestUpload: typeof XMLHttpRequestUpload;
                                         ~~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:409:32 - error TS2304: Cannot find name 'XMLHttpRequest'.

409         XMLHttpRequest: typeof XMLHttpRequest;
                                   ~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:410:27 - error TS2304: Cannot find name 'WebSocket'.

410         WebSocket: typeof WebSocket;
                              ~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:412:28 - error TS2304: Cannot find name 'NodeFilter'.

412         NodeFilter: typeof NodeFilter;
                               ~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:413:30 - error TS2304: Cannot find name 'NodeIterator'.

413         NodeIterator: typeof NodeIterator;
                                 ~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:414:28 - error TS2304: Cannot find name 'TreeWalker'.

414         TreeWalker: typeof TreeWalker;
                               ~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:416:31 - error TS2304: Cannot find name 'AbstractRange'.

416         AbstractRange: typeof AbstractRange;
                                  ~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:417:23 - error TS2304: Cannot find name 'Range'.

417         Range: typeof Range;
                          ~~~~~

node_modules/@types/jsdom/base.d.ts:418:29 - error TS2304: Cannot find name 'StaticRange'.

418         StaticRange: typeof StaticRange;
                                ~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:419:27 - error TS2304: Cannot find name 'Selection'.

419         Selection: typeof Selection;
                              ~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:421:25 - error TS2304: Cannot find name 'Storage'.

421         Storage: typeof Storage;
                            ~~~~~~~

node_modules/@types/jsdom/base.d.ts:423:39 - error TS2304: Cannot find name 'CustomElementRegistry'.

423         CustomElementRegistry: typeof CustomElementRegistry;
                                          ~~~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:424:28 - error TS2304: Cannot find name 'ShadowRoot'.

424         ShadowRoot: typeof ShadowRoot;
                               ~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:426:34 - error TS2304: Cannot find name 'MutationObserver'.

426         MutationObserver: typeof MutationObserver;
                                     ~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:427:32 - error TS2304: Cannot find name 'MutationRecord'.

427         MutationRecord: typeof MutationRecord;
                                   ~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:429:25 - error TS2304: Cannot find name 'Headers'.

429         Headers: typeof Headers;
                            ~~~~~~~

node_modules/@types/jsdom/base.d.ts:434:28 - error TS2304: Cannot find name 'StyleSheet'.

434         StyleSheet: typeof StyleSheet;
                               ~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:435:27 - error TS2304: Cannot find name 'MediaList'.

435         MediaList: typeof MediaList;
                              ~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:436:31 - error TS2304: Cannot find name 'CSSStyleSheet'.

436         CSSStyleSheet: typeof CSSStyleSheet;
                                  ~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:437:25 - error TS2304: Cannot find name 'CSSRule'.

437         CSSRule: typeof CSSRule;
                            ~~~~~~~

node_modules/@types/jsdom/base.d.ts:438:30 - error TS2304: Cannot find name 'CSSStyleRule'.

438         CSSStyleRule: typeof CSSStyleRule;
                                 ~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:439:30 - error TS2304: Cannot find name 'CSSMediaRule'.

439         CSSMediaRule: typeof CSSMediaRule;
                                 ~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:440:31 - error TS2304: Cannot find name 'CSSImportRule'.

440         CSSImportRule: typeof CSSImportRule;
                                  ~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:441:37 - error TS2304: Cannot find name 'CSSStyleDeclaration'.

441         CSSStyleDeclaration: typeof CSSStyleDeclaration;
                                        ~~~~~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:445:33 - error TS2304: Cannot find name 'XPathExpression'.

445         XPathExpression: typeof XPathExpression;
                                    ~~~~~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:446:29 - error TS2304: Cannot find name 'XPathResult'.

446         XPathResult: typeof XPathResult;
                                ~~~~~~~~~~~

node_modules/@types/jsdom/base.d.ts:447:32 - error TS2304: Cannot find name 'XPathEvaluator'.

447         XPathEvaluator: typeof XPathEvaluator;
                                   ~~~~~~~~~~~~~~

node_modules/@types/jsdom/ts4.0/index.d.ts:7:28 - error TS2304: Cannot find name 'InputEvent'.

7         InputEvent: typeof InputEvent;
                             ~~~~~~~~~~

node_modules/@types/jsdom/ts4.0/index.d.ts:8:26 - error TS2304: Cannot find name 'External'.

8         External: typeof External;
                           ~~~~~~~~


Found 178 errors.

Additional context

No response

Environment

For the main branch:

  System:
    OS: macOS 12.0.1
    CPU: (8) arm64 Apple M1
  Binaries:
    Node: 16.13.0 - ~/.nvm/versions/node/v16.13.0/bin/node
    npm: 8.1.0 - ~/.nvm/versions/node/v16.13.0/bin/npm
  npmPackages:
    jest: 27.3.1 => 27.4.0

For the jest-27.4 branch:

  System:
    OS: macOS 12.0.1
    CPU: (8) arm64 Apple M1
  Binaries:
    Node: 16.13.0 - ~/.nvm/versions/node/v16.13.0/bin/node
    npm: 8.1.0 - ~/.nvm/versions/node/v16.13.0/bin/npm
  npmPackages:
    jest: 27.4.0 => 27.4.0

For the jest-27.4-with-DOM branch:

System:
    OS: macOS 12.0.1
    CPU: (8) arm64 Apple M1
  Binaries:
    Node: 16.13.0 - ~/.nvm/versions/node/v16.13.0/bin/node
    npm: 8.1.0 - ~/.nvm/versions/node/v16.13.0/bin/npm
  npmPackages:
    jest: 27.4.0 => 27.4.0 

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Reactions: 24
  • Comments: 20 (6 by maintainers)

Commits related to this issue

Most upvoted comments

jest-environment-jsdom will be removed from default dependency tree in Jest 28

https://github.com/DefinitelyTyped/DefinitelyTyped/pull/57432 should solve it. If they don’t accept it we can revert here

Is their any solution for npm users?

@Zheoden My bad, change the URL to 1.1.3 and you won’t get that anymore. That was still a leftover from some bad Renovate Bot config I had a few months ago. I now changed it to >= 14 so it’ll allow anything in the major 14 range.

27.4.3 does the trick. Thanks again @SimenB 😃

I temporarily downgraded to "jest": "^26.6.3"

Adding dom to tsconfig.json is not an option. Node.js projects don’t use it at all, so why add an unused lib?

@DanielMSchmidt, I suspect your typechecking fails because you only pinned jest. jest and its related dependencies use the caret range for @jest/* and jest* dependencies, so you’re probably still picking up 27.4.0 dependencies even though you’re pinning the jest package to a lower version.

https://github.com/ryanvanoss/jest-27.4-types/blob/ae8b692cab2d038126698627a0ec6a0c7f050b6f/package.json#L5

https://github.com/ryanvanoss/jest-27.4-types/blob/ae8b692cab2d038126698627a0ec6a0c7f050b6f/package.json#L8-L12

That’s a minimal example, so you may need to pin other Jest-related deps…

Add "jest-environment-jsdom": "~27.3.1" to resolutions field if you use yarn for a temporary fix.

Worked with pnpm also, thanks.