Daniel Rosenwasser
@danr.bsky.social
1.9K followers 330 following 33 posts
TypeScript Product Manager and TC39 rep working on JavaScript standards. Enthusiast of compilers, dev tools, language VMs/runtimes.
Posts Media Videos Starter Packs
danr.bsky.social
Congratulations!! 🎉🎉
Reposted by Daniel Rosenwasser
robpalmer.bsky.social
ECMAScript excitement 😉

@jason-williams.co.uk from TechAtBloomberg announces the release of Boa's Rust-based implementation of TC39 Stage 3 Temporal 🎉

Chrome estimates this will ship in Chromium 143 🎉🎉

Temporal is the shiny replacement for the broken JS Date API ✨
boajs.dev
Boa @boajs.dev · 21d
Temporal_rs has been released!!!

This is the first public release of Temporal_rs, a Rust implementation of the Temporal API powering Boa, Kiesel, V8 plus other engines.

This will be shipping in Chromium soon

More info in our blog post: boajs.dev/blog/2025/09...
Temporal_rs is here! The datetime library powering Temporal in Boa, Kiesel, and V8 | Boa JS
clock banner
boajs.dev
Reposted by Daniel Rosenwasser
Reposted by Daniel Rosenwasser
vscode.dev
🚀 v1.104 of VS Code is here! Check out what's new:

🤖 Improved coding agent integration
📄 AGENTS.md file support for better context
🔍 New Auto mode (Preview) for smart model selection
🔑 Model flexibility via BYOK extension API

…and more: aka.ms/VSCodeRelease

Here are the highlights 🧵
A thumbnail with a dark background and the VS Code logo that reads "What's new in Visual Studio Code August Update 1.104. Add context from AGENTS.md, confirm agent edits for sensitive files, improved chat UX experience, control chat modes from prompt files, improved terminal command approvals, automatic model selection, model flexibility via VS Code extensions, preview and merge Git worktree changes, configurable inline suggestions delay, and collaborate with background coding agents in Chat Sessions view.
danr.bsky.social
Isn't this already the behavior of strict being on? Before users had to opt in to breakiness.

The big problem is that if strict is on for everyone, we always have to think about this on the context of "now everyone is broken" which was always the reason we didn't do it.
danr.bsky.social
@robpalmer.bsky.social makes a good point - `--strict`-by-default isn't the only thing to expect in TypeScript 6.0. We're trying to adopt better defaults and simplify for the future.

Check out the current plans on our milestone: github.com/microsoft/Ty...
Reposted by Daniel Rosenwasser
robpalmer.bsky.social
TypeScript excitement 😉

TS 6.0 is planning a bunch of breaking changes to tsconfig options to deprecate some and change the defaults for others. This will simplify configuration and ease the transition to the Go-based TS 7.0 👍

The latest pitch is to enable strict type-checking modes by default 🎉
danr.bsky.social
I get the broader point. For specific options, I think noUncheckedIndexedAccess may be a little rough for most people, but we might be able to do better analyses with a faster TS.

With exactOptionalPropertyTypes, that requires a bit more of an ecosystem adaptation, and it's very annoyingly subtle.
danr.bsky.social
I'll bring it up in the issue though.
danr.bsky.social
You mean like saying that `noImplicitAny` has "graduated" to being using useful enough to turn it on by default?

I do like that, but I think being able to say "all of strict is on" is a little bit easier to think about than "most of strict is now empty and these 10 flags are now on".
Reposted by Daniel Rosenwasser
jakebailey.dev
Tonight will be one of the best nightlies of the TypeScript Native Preview ever.

1) @andrewbran.ch fully rewrote the language server infra into a snapshot model. No more data races. It's so cool

2) Sheetal added build mode (-b), and it's even _concurrent_ build mode. 10x+ on dt-tools, hot and cold
Benchmark 1: node ./node_modules/typescript/lib/tsc.js -b . -f
  Time (mean ± σ):      4.204 s ±  0.057 s    [User: 6.437 s, System: 0.533 s]
  Range (min … max):    4.142 s …  4.305 s    10 runs
 
Benchmark 2: /home/jabaile/work/TypeScript-go/built/local/tsgo -b . -f
  Time (mean ± σ):     377.8 ms ±   8.1 ms    [User: 2827.7 ms, System: 453.3 ms]
  Range (min … max):   361.4 ms … 387.1 ms    10 runs
 
Summary
  /home/jabaile/work/TypeScript-go/built/local/tsgo -b . -f ran
   11.13 ± 0.28 times faster than node ./node_modules/typescript/lib/tsc.js -b . -f

Benchmark 1: node ./node_modules/typescript/lib/tsc.js -b .
  Time (mean ± σ):      1.247 s ±  0.016 s    [User: 1.859 s, System: 0.252 s]
  Range (min … max):    1.232 s …  1.284 s    10 runs
 
  Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
 
Benchmark 2: /home/jabaile/work/TypeScript-go/built/local/tsgo -b .
  Time (mean ± σ):     120.6 ms ±   9.5 ms    [User: 843.1 ms, System: 207.4 ms]
  Range (min … max):   111.8 ms … 156.0 ms    24 runs
 
Summary
  /home/jabaile/work/TypeScript-go/built/local/tsgo -b . ran
   10.34 ± 0.82 times faster than node ./node_modules/typescript/lib/tsc.js -b .
danr.bsky.social
But I will say, it's *relatively* rare and you can always get consistent results if you distribute files consistently across a fixed number of processes
danr.bsky.social
Technically there are issues where checking files in different orders can result in different types. tsgo mostly avoids this with how it sorts/orders types, TS today has a branch with this logic that @jakebailey.dev ported over.
Reposted by Daniel Rosenwasser
robpalmer.bsky.social
It's easy to miss a key feature of Node's TypeScript support that was released on Friday: it's zero config 💥

Meaning you don't need to put anything in package.json. Strictly speaking you don't even need a tsconfig to run the code.

nodejs.org/en/blog/rele...
2025-07-31, Version 22.18.0 'Jod' (LTS), @aduh95
Notable Changes
Type stripping is enabled by default
Node.js will be able to execute TypeScript files without additional configuration:

$ echo 'const foo: string = "World"; console.log(`Hello ${foo}!`);' > file.ts
$ node file.ts
Hello World!
Reposted by Daniel Rosenwasser
robpalmer.bsky.social
Node excitement 😉

Congrats to @marcoippolito.dev on today's landmark Node 22.18 release. It is the first LTS release to ship unflagged TypeScript support 🎉

This means Node can run *.ts files. It pairs well with TypeScript's "erasableSyntaxOnly" flag 👍

Many folk contributed 🙏
marcoippolito.dev
Type stripping is enabled by default 🔥🔥🔥🔥
You can just run `node file.ts` without `--experimental-strip-types` flag.
This is a huge milestone
Node.js 22.18.0 is out and enables type stripping by default – that’s right, Node.js LTS can now run TypeScript files. Shout out to @marcoippolito.dev for championing that effort! Download links and full changelog available at nodejs.org/en/blog/rele...
Reposted by Daniel Rosenwasser
robpalmer.bsky.social
TypeScript excitement 😉

TS 5.9 is out 🎉

🔶 `import defer` by @nicr.dev
🔶 module: "node20" for require(ESM)
🔷 --init has modern defaults (no downleveling)
🔷 Docs: Inline summaries for DOM APIs
🔷 IDE: Expandable hovers to drill into Quick Infos
🔷 Perf: Faster type instantiation & file existence
typescriptlang.org
TypeScript 5.9 is now available! 📣

This release brings:

✅ An updated tsc --init
✅ Type-checking for the new 'import defer'
✅ Actual summaries in more DOM APIs
✅ Expandable quick info hovers (✨preview✨)

and more! Read up more on our blog:

devblogs.microsoft.com/typescript/a...
Announcing TypeScript 5.9 - TypeScript
Today we are excited to announce the release of TypeScript 5.9! If you’re not familiar with TypeScript, it’s a language that builds on JavaScript by adding syntax for types. With types, TypeScript mak...
devblogs.microsoft.com
Reposted by Daniel Rosenwasser
typescriptlang.org
TypeScript 5.9 is now available! 📣

This release brings:

✅ An updated tsc --init
✅ Type-checking for the new 'import defer'
✅ Actual summaries in more DOM APIs
✅ Expandable quick info hovers (✨preview✨)

and more! Read up more on our blog:

devblogs.microsoft.com/typescript/a...
Announcing TypeScript 5.9 - TypeScript
Today we are excited to announce the release of TypeScript 5.9! If you’re not familiar with TypeScript, it’s a language that builds on JavaScript by adding syntax for types. With types, TypeScript mak...
devblogs.microsoft.com
Reposted by Daniel Rosenwasser
vscode.dev

🚀 v1.102 of VS Code is here! Check out what’s new:

- MCP is GA with GitHub policy support
- GitHub Copilot Chat is open source
- Use custom modes for tailored chat
- Background task management with Copilot coding agent

…and so much more: aka.ms/VSCodeRelease

🧶 Here are some of the highlights…
A thumbnail with a dark background and the VS Code logo that reads "What’s new in Visual Studio Code June Update 1.102, featuring open source Copilot Chat, custom instructions, chat modes, auto-approve terminal commands, MCP GA, unified MCP view, middle-click scroll, and background task handling."
Reposted by Daniel Rosenwasser
lea.verou.me
🔥 I have news! After a 1y hiatus, I’m once again leading this year’s #StateOfHTML survey, thanks to generous funding by Google. ❤️

🙋🏽‍♀️ Is there is an HTML feature or Web API you're dying to see progress on? Suggest it and it could be included!

[1/2]

lea.verou.me/blog/2025/de...
Influence the State of HTML 2025 Survey! • Lea Verou
lea.verou.me
Reposted by Daniel Rosenwasser
vscode.dev
Last month, we announced plans to open source the GitHub Copilot Chat extension. Today, we've reached that milestone. Let's build the future of software development together: aka.ms/oss-ai-editor
Open Source AI Editor: First Milestone
We are open sourcing the GitHub Copilot Chat extension. It’s the first milestone in making VS Code an open source AI editor.
aka.ms
Reposted by Daniel Rosenwasser
slack.engineering
Slack now runs the new Go-powered @typescriptlang.org checker in CI. Using the tool saves us over 5 minutes per run, meaning faster merges and happier developers.

Huge thanks to Anders, @jakebailey.dev, and everyone else on the project for the incredible performance gains.
developer.microsoft.com
ICYMI: TypeScript is now 10x faster!