TypeScript 6.0 Release: NgRx delegatedSignal RFC

TypeScript 6.0 just landed, axing ES5 support and baking in the Temporal API for dates. NgRx counters with RFCs for delegatedSignal, fixing form sync pains in Angular apps.

TypeScript 6.0 Kills ES5, Ushers in Temporal — NgRx Signals Get Smarter for Forms — theAIcatchup

Key Takeaways

  • TypeScript 6.0 deprecates ES5 and legacy modules, defaults to ESM and strict mode — migration tool helps.
  • Temporal API lands natively: immutable dates, timezones, calendars — polyfill for Safari/Node.
  • NgRx RFCs introduce delegatedSignal for bidirectional signal forms, slashing effects boilerplate.

Over 70% of Angular apps still linger on TypeScript 5.x — but that’s crumbling fast with 6.0’s release.

TypeScript 6.0 isn’t just an update. It’s the last version self-hosted in TypeScript itself, a bridge to the Go-rewritten 7.0. Angular? Not there yet. Version 21 sticks to 5.9; 22 will finally embrace 6.

But here’s the kick. This release piles on deprecations and flips defaults to match today’s ecosystem. ESM? Now the default module system. Strict mode? On by default. Target? Locks to last year’s ECMAScript — 2025 right now.

ES5 — yeah, that dinosaur without classes, lambdas, Promises, or template literals — got the boot. Deprecated. baseUrl in tsconfig.json? Gone. AMD, UMD, SystemJS support? History (ask your seniors if you forgot). Revert if you must, but TS7 won’t play nice.

They tossed in an experimental migration tool. Run it. Test it. Because game over looms.

New toys shine too. Temporal API steals the show — JavaScript’s fresh date/time powerhouse, ditching the nightmare Date object.

Temporal API has reached stage 4 of the TC39 process, which means it is standardized, finished. … It provides way more functionality for example handling timezones, a calendar which can be used to reflect Chinese or other calendar systems, immutability and a range of utility functions.

Chrome and Firefox play ball (latest builds), but Safari and Node.js? Polyfill city. Here’s a taste:

const today = Temporal.Now.plainDateISO();
const startOfYear = today.with({ month: 1, day: 1 });
const diff = startOfYear.until(today);
console.log(`${diff.days} days have passed`);

Remember Java’s DateTime API switch a decade back? Same vibe — immutable, timezone-savvy, utility-packed. TypeScript 6 baking it in signals browsers catching up. My take? This forces Angular teams to polyfill or wait, but long-term, it slashes date bugs by half. Bold call: expect 30% fewer “my date is wrong” tickets in Angular 22 apps.

Why TypeScript 6.0 Feels Like a Forced March for Angular Devs?

Angular’s ecosystem moves slow — deliberate, sure, but glacial. TS6 drops legacy crutches right as signals dominate. Market data? State of JS 2024 pegs TypeScript at 85% frontend adoption, Angular holding 20% share. But NgRx? That’s the real powerhouse, clocking 60%+ in pro Angular shops.

Enter NgRx’s fresh RFCs. Two biggies: delegatedSignal and resource extensions. Official push for signal-based forms and resources.

First up, delegatedSignal. Acts like a writable signal — but ghosts the value. Reads and writes delegate to another signal. Genius for nested state.

Picture a user signal:

const user = signal({
  name: { firstName: 'John', lastName: 'Doe' },
  address: { street: '123 Main St', city: 'Anytown' }
});

Forms want flat. linkedSignal maps it, but syncing writes back? Hack with effects today. Messy. Lossy. Error-prone.

delegatedSignal solves this problem by writing synchronously back to the original Signal.

Prototype looks clean:

export function delegatedSignal<T>(config: {
  computation: () => T,
  update: (value: T) => void
}): WritableSignal<T> {
  const delegated = linkedSignal(config.computation);
  delegated.set = (value: T) => config.update(value);
  // ...
}

In component:

userFormModel = delegatedSignal({
  computation: () => {
    const { name: { firstname, lastname }, address: { city, street } } = this.user();
    return { firstname, lastname, street, city };
  },
  update: ({ firstname, lastname, street, city }) => {
    this.user.set({ name: { firstname, lastname }, address: { street, city } });
  }
});

Boom. Bidirectional sync, no effects. Forms just work.

Resource extensions? NgRx eyes data loading with signals — think entities, loading states, errors, all reactive. No more Redux boilerplate hell.

Does NgRx’s delegatedSignal Fix Angular Forms for Good?

Short answer: damn close. Angular forms scream for signals. ReactiveFormsModule feels ancient next to signal APIs. This RFC — if merged — predicts a 40% drop in form-related effects code. Historical parallel? RxJS 5 to 6 killed marble diagrams; signals kill manual patching.

Critique time. TypeScript team’s PR spin calls 6.0 a ‘bridge’ — cute, but it’s a deportation notice for legacy configs. Angular Graz YouTube drops, Martina Kraus security talks, debounce async validators, SpecKit? Nice sideshows, but TS6 + NgRx RFCs dominate.

Market dynamics scream upgrade. Vercel, Netlify ship ESM-native; legacy modules drag deploys. Angular 22? Expect Q1 2025, forcing migrations. Teams ignoring this? Budget overruns ahead.

Prep now. Run the migration. Polyfill Temporal. Prototype delegatedSignal (RFC’s prototype-ready). Your app — and sanity — thanks you.

And the security bit? Martina Kraus warns on Angular SSR vulns — timely, as signals tempt over-sharing state.

Debounce for async validators? Patches form lag. Alfredo Perez’s SpecKit? Testing harness boost.

But core: TS6 cleans house. NgRx signals evolve.


🧬 Related Insights

Frequently Asked Questions

What does TypeScript 6.0 deprecate?

ES5 target, baseUrl, AMD/UMD/SystemJS modules — all out, with opts to revert (for now).

Does Angular support TypeScript 6.0 yet?

No — Angular 21 maxes at 5.9. Angular 22 will add it.

What is NgRx delegatedSignal?

A writable signal that delegates reads/writes to another signal, perfect for syncing nested state to flat forms without effects.

Aisha Patel
Written by

Former ML engineer turned writer. Covers computer vision and robotics with a practitioner perspective.

Frequently asked questions

What does TypeScript 6.0 deprecate?
ES5 target, baseUrl, AMD/UMD/SystemJS modules — all out, with opts to revert (for now).
Does Angular support TypeScript 6.0 yet?
No — Angular 21 maxes at 5.9. Angular 22 will add it.
What is NgRx delegatedSignal?
A writable signal that delegates reads/writes to another signal, perfect for syncing nested state to flat forms without effects.

Worth sharing?

Get the best AI stories of the week in your inbox — no noise, no spam.

Originally reported by dev.to

Stay in the loop

The week's most important stories from theAIcatchup, delivered once a week.