Buried in the Node.js 26 release notes, between a Temporal API announcement and a GCC bump, is a single bullet that broke more projects than anything else in that changelog: --experimental-transform-types is gone.
Node's native TypeScript support always ran in one of two modes. Strip mode deletes type annotations and replaces them with whitespace, it's been the default since Node 22.18.0 and 24.3.0. Transform mode did more, it compiled enums into runtime objects, namespaces into IIFEs, and parameter properties into constructor assignments. That second mode is the one that just got pulled, with no replacement.
The result is a parse error. Run a file with a plain enum on an affected Node version and you get ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX before your program executes a single line. No try/catch will save you, and your editor won't warn you either, because tsc considers this syntax completely valid.
Here's the detail that catches teams off guard: this isn't purely a Node 26 story. The same removal landed in Node 24.12.0, a patch release on the 24 LTS line, and in 25.2.0. A range pin like 24.x or ^24.0.0 in your Dockerfile or CI matrix can pull this in without any major version bump.
I break down all four breaking patterns (enums, namespaces, parameter properties, import-equals) and their mechanical rewrites here: https://devencyclopedia.com/blog/node-experimental-transform-types-removed
If you want to know how much of your own codebase is affected before touching tsconfig, I also built TypeStripCheck, a free browser tool that scans a pasted file and returns every finding with a line number and rewrite, entirely client-side: https://devencyclopedia.com/tools/typestripcheck
Top comments (1)
Landing this in a 24.x LTS patch release is the part that would actually get me, a range pin like that is supposed to be safe by definition. Does tsc itself have any plan to flag transform-mode-only syntax as an error under a stricter target, or is catching this entirely on tools like the one you built for now?