---
title: "Doom for TypeScript types"
publication: "JavaScript Weekly"
issue: 725
published_at: "2025-02-28"
canonical_url: "https://javascriptweekly.com/issues/725"
---

Plus lots of actual JavaScript stuff too. |        

#​725 — February 28, 2025 

[Read on the Web](https://javascriptweekly.com/issues/725)   

✏️ Whenever we include more than a few links about TypeScript, we get complaints from people who _don't like it._ We get that, we love you folks, and we're aware. TypeScript isn't our _main focus_ but we do cover it, including critical pieces. That in mind, prepare yourself for our top feature... but the rest of the issue is mostly JavaScript, promise! 😅
__
_Peter Cooper, your editor_ 

Together with [![Frontend Masters logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_300,h_70/e_make_transparent/co_white,e_outline:5/nk0tfdvalivacz8rw7rt.png)](https://frontendmasters.com/courses/functional-first-steps-v2/?utm_source=email&utm_medium=javascriptweekly&utm_content=ffsv2)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/brxtjibm9xfdhg9joum7.jpg)](https://socket.dev/blog/typescript-types-running-doom)  

[Developer Implements 'Doom' in TypeScript's Type System](https://socket.dev/blog/typescript-types-running-doom) — A curious quirk of TypeScript’s type system is that [it is Turing-complete](https://github.com/microsoft/TypeScript/issues/14833) which has led some developers to implement apps entirely _in_ the type system. One such developer has spent eighteen months producing 177 _terabytes_ of types to get 1993’s Doom running with them. Ridiculous and amazing in equal measure, he [▶️ explains the project in this widely lauded 7-minute video.](https://www.youtube.com/watch?v=0mCsluv5FXA)👏 

Sarah Gooding (Socket)   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/b47ce204.png)](https://frontendmasters.com/courses/functional-first-steps-v2/?utm_source=email&utm_medium=javascriptweekly&utm_content=ffsv2) 

[Functional JavaScript First Steps, v2](https://frontendmasters.com/courses/functional-first-steps-v2/?utm_source=email&utm_medium=javascriptweekly&utm_content=ffsv2) — A friendly, practical introduction to functional programming fundamentals in JavaScript. Learn the power of the pure function while exploring functional programming paradigms. 

Frontend Masters sponsor   

[Bun v1.2.3 and v1.2.4 Released](https://bun.sh/blog/bun-v1.2.3) — The rapid pace of progress on the JavaScriptCore-based runtime is only increasing. [v1.2.3](https://bun.sh/blog/bun-v1.2.3) pushes frontend dev server features (run `bun ./index.html` and all the bundling is done for you). `bun init` can now be used to create a new React project. Meanwhile, [Bun 1.2.4](https://bun.sh/blog/bun-v1.2.4) builds macOS apps 60% faster and macOS executables can now be code signed. 

Jarred Sumner et al.   

[What _is_ TypeScript? An Overview for JavaScript Programmers](https://2ality.com/2025/02/what-is-typescript.html) — You may have noticed esteemed JavaScript developer and author Dr. Axel has been on a TypeScript odyssey recently. Here he does a good job at boiling down the _what_ (rather than the ‘why’) of TypeScript. A handy primer on what’s going on, even if you don’t plan to use it, since you'll end up interacting with it _somewhere.._ 

Dr. Axel Rauschmayer   

**IN BRIEF:** 

- ⭐ The Chromium team is progressing with [shipping the Observable API.](https://groups.google.com/a/chromium.org/g/blink-dev/c/stxSgTgMHog) This is a big deal, especially for libraries like [RxJS.](https://rxjs.dev/)
- 📊 [BenchJS](https://benchjs.com/) is an online JavaScript benchmarking sandbox worth playing with.
- A look behind the scenes at [recent progress on the records & tuples proposal](https://github.com/tc39/proposal-record-tuple/issues/393) for JavaScript (currently stage 2 at TC39). You can [play with the feature here.](https://rickbutton.github.io/record-tuple-playground/)
- [Windows 95 in Electron](https://github.com/felixrieseberg/windows95/releases/tag/v4.0.0) is, unsurprisingly, Windows 95 running in an Electron app! v4.0 adds Office 95 and IE 5.5 for some (limited) browsing of the Web.
- 📊 [The results of the _State of React Native 2024_ survey](https://results.stateofreactnative.com/en-US/) are out.   

**RELEASES:** 

- [Next.js 15.2](https://nextjs.org/blog/next-15-2) – Now with a redesigned debugging experience and experimental support for React's new View Transitions API and using the Node.js runtime in middleware.
- [Astro 5.4](https://astro.build/blog/astro-540/) – Now with remote image optimization and experimental responsive image support in Markdown.
- [ESLint v9.21.0](https://eslint.org/blog/2025/02/eslint-v9.21.0-released/) – Now with a `--ext` CLI option to lint files with a particular extension.
- [Ember.js 6.2](https://blog.emberjs.com/ember-released-6-2/), [Angular 19.2](https://github.com/angular/angular/releases/tag/19.2.0), [Node.js v23.9 (Current)](https://nodejs.org/en/blog/release/v23.9.0)  

📒 Articles & Tutorials  

[React Libraries for 2025](https://www.robinwieruch.de/react-libraries/) — Each year, prolific React blogger Robin updates his post covering his opinionated list of essential React ecosystem libraries. He covers a lot of angles from project creation and package management through to state management, animation, form creation, auth, and i18n. 

Robin Wieruch   

[Turbocharging V8 with Mutable Heap Numbers](https://v8.dev/blog/mutable-heap-number) — The V8 team uses the JetStream2 benchmark suite to investigate performance issues and has implemented a new optimization yielding not just a 2.5x improvement in the `async-fs` benchmark but in other areas too. 

Victor Gomes (V8)   

[Wish Your AI Co-Pilot Actually Knew Your Codebase?](https://augmentcode.com/?utm_source=cooper&utm_medium=newsletter) — Try the most context-aware Developer AI. Augment deeply understands your codebase, documentation, and dependencies. 

Augment Code sponsor   

[Subverting Control with Weak References](https://jlongster.com/weak-refs) — A weak reference differs from a normal reference in that it _doesn’t_ prevent a referenced object from being garbage collected. Most modern JS runtimes support them and James shows how they can be useful. 

James Long   

⭐ [How JIT (Just In Time) Compilation Makes JavaScript Faster](https://www.royalbhati.com/posts/why-js-is-fast) Royal Bhati 

📄 [Using AI in the Browser for Typo Rewriting](https://www.raymondcamden.com/2025/02/27/using-ai-in-the-browser-for-typo-rewriting) – A poke around one of Chrome’s newest AI features. Raymond Camden 

📄 [A Mere Mortal's Introduction to JIT Vulnerabilities in JS Engines](https://trustfoundry.net/2025/01/14/a-mere-mortals-introduction-to-jit-vulnerabilities-in-javascript-engines/) Josiah Pierce 

📄 [How to Do Visual Regression Testing in Vue with Vitest](https://alexop.dev/posts/visual-regression-testing-with-vue-and-vitest-browser/) Alexander Opalic 

📄 [Why We Ditched Next.js and Never Looked Back](https://northflank.com/blog/why-we-ditched-next-js-and-never-looked-back) Stewart and Snelling 

📄 [Micro Frontends with Angular and Native Federation](https://blog.angular.dev/micro-frontends-with-angular-and-native-federation-7623cfc5f413) Manfred Steyer (Angular Blog)  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/hsugc44c7irehakiif9l.jpg)](https://svelvet.mintlify.app/introduction)  

[Svelvet 11: Build Node-Based UIs with Svelte](https://svelvet.mintlify.app/introduction) — A mature Svelte component library for creating interactive node-based UIs and diagrams. v11 adds the ability to toggle between ‘snap grid’ and freeform modes for manipulating elements. (There’s a live demo at the bottom of the homepage.) 

Open Source Labs   

[React Native 0.78 Released](https://reactnative.dev/blog/2025/02/19/react-native-0.78) — A big release for React Native as it ships React 19 support (which [requires some tweaks when upgrading](https://react.dev/blog/2024/04/25/react-19-upgrade-guide)) and some more minor tweaks. 

Novak, Cucci, Gupta and Cipolleschi (Meta)   

[🔒 Protect Against Bots, Fraud, and Abuse in Real Time](https://workos.com/radar?utm_source=cpjs&utm_medium=newsletter&utm_campaign=q12025) — WorkOS Radar protects your app with advanced device fingerprinting — stop fake signups, free tier abuse, bot attacks and brute force attempts today. 

WorkOS sponsor   

[Random: Seedable Random Number Generator](https://github.com/transitive-bullshit/random) — You’ve got `Math.random` but this library takes things a few steps further with easy ways to create random values of various types and using different distributions (e.g. normal distribution, Bernoulli, Poisson, Pareto and Weibull). 

Travis Fischer   

[QuickJS Sandbox 2.0: Execute JS/TS in a QuickJS Powered Sandbox](https://sebastianwessel.github.io/quickjs/) — [QuickJS](https://bellard.org/quickjs/) is a small, embeddable JavaScript engine built by Fabrice Bellard and this extends it to make it easy to run code in an isolated sandboxed environment, along with some basic Node module support and a virtual file system. [GitHub repo.](https://github.com/sebastianwessel/quickjs) 

Sebastian Wessel   

- [PrimeVue 4.3](https://primevue.org/) – A UI component suite for Vue, now with a new 'theme designer' tool including a Figma-to-code feature.
- 🗓️ [React Big Calendar 1.18](https://github.com/jquense/react-big-calendar) – Google Calendar/Outlook-like calendar component. Now with React 19 support.
- [InversifyJS 7.0](https://github.com/inversify/InversifyJS) – Inversion of control container for JavaScript. There's a [v6-to-v7 upgrade guide.](https://inversify.io/docs/guides/migrating-from-v6/)
- [React Markdown 10.0](https://github.com/remarkjs/react-markdown) – Component to render markdown. ([Demo.](https://remarkjs.github.io/react-markdown/))
- [fast-png 6.3](https://github.com/image-js/fast-png) – Pure JavaScript PNG image decoder and encoder.
- [Mercurius 16.1](https://github.com/mercurius-js/mercurius) – Implement GraphQL servers on top of Fastify.
- [Varlet 3.9](https://github.com/varletjs/varlet) – Material Design-inspired component library for Vue 3.
- [file-type 20.4](https://github.com/sindresorhus/file-type) – Detect the file type of a file, stream, or data.
- [FxTS 1.5](https://github.com/marpple/FxTS) – Functional library for TS/JS devs.      

📰 Classifieds   

🎹 [STRICH](https://strich.io/?ref=js-weekly): Add blazing fast and reliable 1D/2D Barcode Scanning to your web apps. Free demo app and 30-day trial available. 

--- 

[Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort](https://www.meticulous.ai?utm_source=javascript_weekly&utm_campaign=february28th). Relied on by 1000s of orgs, including Dropbox, Lattice, Bilt Rewards and many more. 

--- 

📣 [Creators of the State of JS, Vue.js, Vite, Pino & Fastify](https://jsnation.com?utm_source=Newsletter&utm_medium=jsweekly) — have you seen the new JSNation speakers? Get 10% off with code`JSWEEKLY`. 

--- 

[Bit - A build system framework for development of composable software](https://bit.dev/?utm_source=JavaScriptWeekly&utm_id=25&utm_medium=newsletter). Natively to Harmony, and support Node.js, React apps (with Vite), NextJS, Angular, Vue and more.     

📢 Elsewhere  

A quick roundup of some of other interesting updates or useful resources in the broader developer landscape: 

- Remember [Ajax?](https://en.wikipedia.org/wiki/Ajax_%28programming%29) The popular term bringing together several technologies involving asychronous JavaScript making dynamic updates by calling the server [was coined in this article 20 years ago this month.](https://web.archive.org/web/20080302121152/http://adaptivepath.com/ideas/essays/archives/000385.php)
- 🤖 [Is it viable to have LLMs write `alt`-text for your images?](https://dri.es/comparing-local-llms-for-alt-text-generation) Dries Buytaert put a few models through their paces.
- GitHub is getting involved with the AI developer agent game and [shows off a preview of its new Copilot 'agent mode'.](https://code.visualstudio.com/blogs/2025/02/24/introducing-copilot-agent-mode)
- 🌊 A detailed look at the techniques behind [high-performance, real-time fluid simulations with WebGPU.](https://tympanus.net/codrops/2025/02/26/webgpu-fluid-simulations-high-performance-real-time-rendering/)
- Electronic Arts certainly doesn't make a habit of open sourcing old games, but [it's just done that for 1996's _Command and Conquer: Red Alert_](https://github.com/electronicarts/CnC_Red_Alert), one of the pioneering games in the real time strategy genre.         

Published by [Cooperpress](https://cooperpress.com/) and edited by [Peter Cooper](https://twitter.com/cooperx86) 

'JavaScript' is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle. 

[Change your email address](https://javascriptweekly.com/edit_subscription/*|UID|*) or [stop getting this newsletter](https://javascriptweekly.com/leave/*|UID|*). 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
