The TypeScript 6.0 Release Candidate dropped, and buried in the announcement is a line that deserves more attention than a changelog bullet point:
TypeScript 6.0 is a unique release in that we intend for it to be the last release based on the current JavaScript
Let that sink in. Microsoft is explicitly marking this as the end of a generation.
What Does “Last Release Based on Current JavaScript” Mean?
This phrasing is doing a lot of work. The TypeScript team isn’t saying 6.0 is the last TypeScript — they’re saying the foundation is shifting. The most likely explanation is that we’re finally approaching the moment where native type annotations in JavaScript become a real thing.
The TC39 Type Annotations proposal has been working its way through the standards process, and if it reaches a point where JavaScript engines start treating type syntax as ignorable comments rather than errors, the relationship between TypeScript and JS fundamentally changes. TypeScript would stop being a language that compiles to JavaScript and start being more of a type checker for JavaScript.
That’s a huge philosophical shift. And TypeScript 6.0 is apparently the last version that predates it.
Getting the RC
If you want to test it out:
npm install -D typescript@rc
For any greenfield projects or personal tools, I’d recommend kicking the tires now. RC means the API surface is largely stable — it’s a good time to catch breakages before GA.
Why This Matters Beyond the Hype
I’ve been writing TypeScript since roughly 2.x, and the build tooling story has always been the friction point. Every time I set up a new Node project, there’s the familiar ritual: tsconfig.json, picking a bundler or ts-node, figuring out whether esModuleInterop should be true or false this time.
If future TypeScript versions can lean on native JS type stripping — which Deno, Bun, and even Node (with the --strip-types flag) have been experimenting with — then a lot of that friction evaporates. You write types, the runtime ignores them, and you only invoke the TypeScript compiler when you actually want type checking, not as a mandatory transpilation step.
That’s a genuinely better developer experience, and it’s been a long time coming.
The Other Side of the Coin
There’s a reasonable concern here: TypeScript has historically been aggressive about adding features that go beyond type annotations — decorators, enums, namespaces, const enums. Some of these are deeply baked into large codebases. A future TypeScript that pivots toward “just types” would need to reckon with that legacy.
I suspect TypeScript 7.x and beyond will have a tricky migration story for teams that leaned hard into those features. But that’s a problem for future-me.
Bottom Line
TypeScript 6.0 RC marks a milestone worth paying attention to — not just for what’s in it, but for what it signals about where things are going. The TypeScript team is clearly thinking about a world where JavaScript itself handles the syntax, and TypeScript handles the semantics.
Install the RC, run it against your projects, and file bugs if things break. That’s how we get a solid GA.