NgRx Signal Store Reaches Stability

The NgRx Signal Store has officially graduated to a stable release. Meanwhile, Node.js is gearing up to introduce experimental TypeScript support. In a recent appearance on the Angular Masters Podcast, Mark Thompson shared his perspective on the importance of adopting Angular.

NgRx Signal Store

Within the Angular ecosystem, NgRx Global and Component Store dominate as the go-to choices for state management. Now, a third option—the NgRx Signal Store—has reached stable status, exiting the developer preview it has been in since October of the previous year.

Signal Store leverages Angular’s Signals, relies on a functional approach, and makes it straightforward to craft bespoke extensions.

This stable release brings new capabilities, including state encapsulation, safeguards against overrides, and the ability to monitor state mutations that the glitch-free effect might otherwise discard.

Already pulling in over 50k downloads weekly, it ranks among the higher-tier state management libraries. Yet, it trails considerably behind the NgRx global store, which sees around 600k downloads per week.

Node.js runs TypeScript

Last week, social media was buzzing with the announcement that Node.js is adding support for TypeScript.

In detail, this involves an experimental mode in Node.js that strips type annotations from TypeScript files, leaving only JavaScript to be executed.

This means no type-checking occurs—a task normally handled by the TypeScript compiler. For type validation, you'll need to rely on your IDE, CI pipeline, or other separate tooling, not the Node.js runtime itself.

A sandbox for experimenting with this feature is provided at:

GitHub logo module: add --experimental-strip-types #53725

marco-ippolito avatar

Moderation Note: This PR has been shared across several social networks, resulting in a considerable number of largely irrelevant comments.

Should you encounter problems when using this feature, or have particular feedback to offer - please create a new issue at https://github.com/nodejs/node/issues/new/choose


By activating the experimental flag --experimental-strip-types, TypeScript files can be run directly. Node.js converts TypeScript source into JavaScript source during this process. Type checking is skipped, and type information is removed during the transformation.

Roadmap

References: https://github.com/nodejs/loaders/issues/217

Motivation

Enabling users to execute TypeScript files is essential for advancing the ecosystem, as it has been consistently demanded across all surveys; we can no longer overlook this. Users clearly expect to run node foo.ts without relying on external packages or loaders.

A TC39 proposal exists for type annotations

Why type stripping

Type stripping, as the term implies, involves eliminating all the types and converting the input into a JavaScript module.

const foo: string = "foo";
Enter fullscreen mode Exit fullscreen mode

The transformation yields:

const foo = "foo";
Enter fullscreen mode Exit fullscreen mode

Other runtimes do convert some TypeScript-only constructs into JavaScript, such as enums, which have no JavaScript counterpart. In this PR, no such conversion is carried out initially, so features like Enum, namespaces, etc., remain unsupported.

Why I chose @swc/wasm-typescript

The choice came down to simplicity. Alternative tools I explored would have forced rust or go into the toolchain. @swc/wasm-typescript is a compact package with a wasm binary and a single JS binding file. Deno already relies on Swc for this exact job, so it has proven reliability. Down the road, I expect this to move into a native layer. A big thank-you goes to @kdy1 for shipping a swc build for us.


⚠️ See typescript.md in the PR for implementation specifics and constraints.

Mark Thompson on Angular

In a recent conversation, Dariusz Kalbarczyk sat down with Mark Thompson, who works as Angular’s Developer Relations Engineer. Among the many useful points raised, Mark talked about ways to encourage developers to adopt Angular.

Mark’s view is that Angular really shines when people move between various projects. Thanks to its consistent structure and clear design guidelines, developers can get oriented quickly, which makes switching contexts simpler and more productive.