首页 >web前端 >js教程 >Node.js v:内置 TypeScript 支持终于来了

Node.js v:内置 TypeScript 支持终于来了

Barbara Streisand
Barbara Streisand原创
2025-01-10 07:45:40612浏览

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

Node.js v23.6.0 最近发布了,它带来了一个重大更新:--experimental-strip-types 的取消标记。这意味着 Node.js 现在可以原生运行 TypeScript 文件,无需任何额外配置。

为什么 TypeScript 很重要

TypeScript 通过引入可选的静态类型和高级功能(例如接口、泛型和类型推断)来增强 JavaScript。多年来,它已经成为大规模 JavaScript 应用程序的事实上的标准。通过与 Node.js 的集成,后端开发人员可以更轻松地访问 TypeScript。

在 Node.js 中运行 TypeScript

要在 Node.js 中执行 TypeScript 文件,只需运行:

node index.ts

除了 .ts 文件之外,Node.js 还支持 .mts 和 .cts 文件,但不支持 .tsx。

Node.js 如何执行 TypeScript

Node.js 使用 swc 版本来去除类型注释,留下可以执行的纯 JavaScript 代码。

在 Node.js 中运行 TypeScript 的注意事项

本地导入必须引用 TypeScript 文件

在没有捆绑程序的环境中使用 TypeScript 时,您之前可能编写过如下导入:

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

而不是来自“./my-module.ts”

这是为什么呢? TypeScript 编译器不会修改“./my-module.js”等模块扩展,因此开发人员必须使用与转译的 JavaScript 输出一致的扩展。

但是,由于 Node.js 使用文件扩展名来确定模块类型,因此您必须在导入中显式引用 TypeScript 文件:

import { myFunction } from './my-module.ts';

此更改是必要的,因为 Node.js 依赖文件扩展名来确定模块类型。相比之下,TypeScript 编译器之前保留了“./my-module.js”等模块说明符不变,要求开发人员适应转译的输出。

没有内置类型检查

Node.js 在运行 TypeScript 文件时不执行类型检查。为了确保类型安全,您需要在本地运行 TypeScript 编译器 (tsc) 或类似工具,例如:

tsc --watch

此外,正确配置 tsconfig.json 对于类型检查和编码之间的一致性至关重要:

node index.ts
  • allowImportingTsExtensions: 允许直接导入 .ts 文件,而不是导入 .js。
  • rewriteRelativeImportExtensions: 将 .ts 文件的相对导入重写为 .js 文件的相对导入。
  • verbatimModuleSyntax: 如果我们在导入类型时不使用 type 关键字,则会发出警告。

必须使用 type 关键字来导入类型

导入类型时需要 type 关键字 - 否则类型剥离不会删除它们。

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

在 Node.js 中运行 TypeScript 的限制

不支持非 JavaScript 语言功能

不支持某些特定于 TypeScript 的功能,包括:

  • 枚举
  • 命名空间
  • 类构造函数中的参数属性

要启用这些功能,您可以添加 --experimental-transform-types 标志。

不支持 TypeScript 带来的未来 JavaScript 功能

TypeScript 允许通过转译在当前 JavaScript 引擎上运行即将推出的 JavaScript 功能(例如装饰器)。

但是,由于 Node.js 仅剥离 TypeScript 类型,因此不支持此类功能。

较旧的 Node.js 版本可以运行 TypeScript 吗?

根据 Marco on X 的说法,Node.js v22 将支持 TypeScript,但 v20 不会。

参考

  • Node 对 TypeScript 的新内置支持
  • Node.js 现在默认支持 TypeScript

我们是 Leapcell,是将 Node.js 项目部署到云端的首选。

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

Leapcell 是用于 Web 托管、异步任务和 Redis 的下一代无服务器平台:

多语言支持

  • 使用 Node.js、Python、Go 或 Rust 进行开发。

免费部署无限个项目

  • 只需支付使用费用——无请求,不收费。

无与伦比的成本效率

  • 即用即付,无闲置费用。
  • 示例:25 美元支持 694 万个请求,平均响应时间为 60 毫秒。

简化的开发者体验

  • 直观的用户界面,轻松设置。
  • 完全自动化的 CI/CD 管道和 GitOps 集成。
  • 实时指标和日志记录以获取可行的见解。

轻松的可扩展性和高性能

  • 自动扩展,轻松处理高并发。
  • 零运营开销 - 只需专注于构建。

在文档中探索更多内容!

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

在 X 上关注我们:@LeapcellHQ


阅读我们的博客

以上是Node.js v:内置 TypeScript 支持终于来了的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn