Home > Web Front-end > JS Tutorial > Node.js v: Built-in TypeScript Support is Finally Here

Node.js v: Built-in TypeScript Support is Finally Here

Barbara Streisand
Release: 2025-01-10 07:45:40
Original
610 people have browsed it

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.

Why TypeScript Matters

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.

Running TypeScript in Node.js

To execute a TypeScript file in Node.js, simply run:

node index.ts
Copy after login
Copy after login

In addition to .ts files, Node.js also supports .mts and .cts files, but .tsx is not supported.

How Node.js Executes TypeScript

Node.js uses a version of swc to strip out the type annotations, leaving plain JavaScript code that it can execute.

Considerations for Running TypeScript in Node.js

Local Imports Must Refer to TypeScript Files

When using TypeScript in an environment without a bundler, you might have previously written imports like this:

import { myFunction } from './my-module.js';
Copy after login
Copy after login

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';
Copy after login

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.

No Built-in Type Checking

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
Copy after login

Additionally, configuring your tsconfig.json correctly is crucial for consistency between type checking and coding:

node index.ts
Copy after login
Copy after login
  • allowImportingTsExtensions: Enables importing .ts files directly instead of importing .js.
  • rewriteRelativeImportExtensions: Rewrites relative imports from .ts files to relative imports from .js files.
  • verbatimModuleSyntax: Warns if we don't use the type keyword when importing a type.

type Keyword Must Be Used to Import Types

type keyword is necessary when importing types - otherwise type stripping won’t remove them.

import { myFunction } from './my-module.js';
Copy after login
Copy after login

Limitations of Running TypeScript in Node.js

No Support for Non-JavaScript Language Features

Certain TypeScript-specific features are not supported, including:

  • Enums
  • Namespaces
  • Parameter properties in class constructors

To enable these features, you can add the --experimental-transform-types flag.

No Support for Future JavaScript Features Brought by TypeScript

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.

Can Older Node.js Versions Run TypeScript?

According to Marco on X, TypeScript support will be coming to to Node.js v22 but not to v20.

References

  • Node’s New Built-in Support for TypeScript
  • Node.js Now Supports TypeScript by Default

We are Leapcell, your top choice for deploying Node.js projects to the cloud.

Node.js v: Built-in TypeScript Support is Finally Here

Leapcell is the Next-Gen Serverless Platform for Web Hosting, Async Tasks, and Redis:

Multi-Language Support

  • Develop with Node.js, Python, Go, or Rust.

Deploy unlimited projects for free

  • pay only for usage — no requests, no charges.

Unbeatable Cost Efficiency

  • Pay-as-you-go with no idle charges.
  • Example: $25 supports 6.94M requests at a 60ms average response time.

Streamlined Developer Experience

  • Intuitive UI for effortless setup.
  • Fully automated CI/CD pipelines and GitOps integration.
  • Real-time metrics and logging for actionable insights.

Effortless Scalability and High Performance

  • Auto-scaling to handle high concurrency with ease.
  • Zero operational overhead — just focus on building.

Explore more in the Documentation!

Node.js v: Built-in TypeScript Support is Finally Here

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!

source:dev.to
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template