Home >Web Front-end >JS Tutorial >Node.js v: Built-in TypeScript Support is Finally Here
Node.js v23.6.0 was recently released, and it comes with a significant update: the unflagging of --experimental-strip-types. This means Node.js can now run TypeScript files natively without any additional configuration.
TypeScript enhances JavaScript by introducing optional static typing and advanced features such as interfaces, generics, and type inference. Over the years, it has become the de facto standard for large-scale JavaScript applications. With this integration into Node.js, TypeScript becomes even more accessible to backend developers.
To execute a TypeScript file in Node.js, simply run:
node index.ts
In addition to .ts files, Node.js also supports .mts and .cts files, but .tsx is not supported.
Node.js uses a version of swc to strip out the type annotations, leaving plain JavaScript code that it can execute.
When using TypeScript in an environment without a bundler, you might have previously written imports like this:
import { myFunction } from './my-module.js';
instead of from './my-module.ts'
Why is that? The TypeScript compiler would not modify module extensions like './my-module.js', so developers had to use extensions that aligned with the transpiled JavaScript output.
However, since Node.js uses file extensions to determine the module type, you must explicitly reference TypeScript files in your imports:
import { myFunction } from './my-module.ts';
This change is necessary because Node.js relies on file extensions to determine the module type. In contrast, the TypeScript compiler previously left module specifiers like './my-module.js' unchanged, requiring developers to adapt to the transpiled output.
Node.js does not perform type checking when running TypeScript files. To ensure type safety, you'll need to run the TypeScript compiler (tsc) or a similar tool locally, for example:
tsc --watch
Additionally, configuring your tsconfig.json correctly is crucial for consistency between type checking and coding:
node index.ts
type keyword is necessary when importing types - otherwise type stripping won’t remove them.
import { myFunction } from './my-module.js';
Certain TypeScript-specific features are not supported, including:
To enable these features, you can add the --experimental-transform-types flag.
TypeScript allows running upcoming JavaScript features (e.g., decorators) on current JavaScript engines, by transpiling them.
However, since Node.js only strips TypeScript types, such features are not supported.
According to Marco on X, TypeScript support will be coming to to Node.js v22 but not to v20.
Leapcell is the Next-Gen Serverless Platform for Web Hosting, Async Tasks, and Redis:
Multi-Language Support
Deploy unlimited projects for free
Unbeatable Cost Efficiency
Streamlined Developer Experience
Effortless Scalability and High Performance
Explore more in the Documentation!
Follow us on X: @LeapcellHQ
Read on our blog
The above is the detailed content of Node.js v: Built-in TypeScript Support is Finally Here. For more information, please follow other related articles on the PHP Chinese website!