写点什么

Node.js 23.6 提供 TypeScript 原生支持

  • 2025-05-09
    北京
  • 本文字数:779 字

    阅读完需:约 3 分钟

大小:384.79K时长:02:11
Node.js 23.6 提供 TypeScript 原生支持

Node 团队最近宣布,在 Node 23.6 中提供 TypeScript 原生支持。现在,Node 开发人员无需任何额外的配置或标识即可运行 TypeScript 文件。在 Node 22.6 中,该功能尚属于试验性质,现在已经稳定。TypeScript 原生支持是开发人员要求最多的 Node 功能之一。

 

现在,Node 开发人员可以创建一个 index.ts 文件,运行 node index.ts,并且不需要额外的标识,Node 会移除文件中的 TypeScript 类型注解,并运行生成的 JavaScript 代码。

 

注意事项:Node.js 会忽略 tsconfig.json 文件,这是有意不再支持依赖于 tsconfig.json 设置的特性,如路径或将较新的 JavaScript 语法转换为较旧的标准(如装饰器,第三阶段建议)。同样, JSX 文件也不再支持。

 

Node 也不支持需要生成 JavaScript 代码的 TypeScript 语法。由于 Node 只需用空格替换内联类型(即类型剥离),所以开发人员无需源映射即可运行 TypeScript 代码。不过,某些具有运行时语义或需要生成 JavaScript 代码的 TypeScript 结构将不再支持。在支持范围内的 TypeScript 语法集称为可擦除语法。为支持这一工作流程,最新发布的 TypeScript(即 TypeScript 5.8)添加了一个 --erasableSyntaxOnly 标识。

 

Node.js 文档中列出了最重要的不再支持的语法:

以下是需要转换的最重要的特性:

Enum 声明

包含运行时代码的namespace 

包含运行时代码的遗留 module 

参数属性

导入别名


TypeScript 原生支持让 Node 更接近于其他原生 TypeScript 运行时,如 Deno 或 Bun。在一篇博文中,Deno 团队详细介绍了其他一些只有 Deno 才提供的特性,其中包括 tsconfig 支持和无需转译即可发布 TypeScript。

 

欢迎开发人员查看关于特性路线图的广泛讨论,其中包括团队做出相关权衡选择的原因以及开发人员的反馈。

 

声明:本文为 InfoQ 翻译,未经许可禁止转载。

 

原文链接:https://www.infoq.com/news/2025/03/node-23-runs-typescript-natively/

2025-05-09 10:007711

评论

发布
暂无评论

没关系,前端还死不了

引迈信息

Vue 前端 低代码 JNPF

MySQL如何做如等级/成色等特殊顺序的排序

北桥苏

MySQL sql 排序算法

phpOffice实现Excel表格导入的解耦方法

北桥苏

php PhpOffice/PhpSpreadsheet

白鹭游戏引擎网络棋牌搭建步骤

北桥苏

php 游戏开发 白鹭引擎

永远不该忘记!科技才是硬道理,手中没有剑,跟有剑不用,是两回事

加入高科技仿生人

人工智能 ChatGPT 文心一言 通义千问 科学技术

全国标杆!3DCAT实时云渲染助力深圳移动5G+智慧校园建设

3DCAT实时渲染

虚拟现实 虚拟仿真 实时渲染云

如何在uni-app中使用fingerprint2实现游客设备标识

北桥苏

JavaScript 前端 uniapp fingerprint

构建动态财务模型,打造商业化的全面预算管理模式

智达方通

业务场景 全面预算管理 财务模型

宝塔中极速安装的PHP如何使用AMQP连接RabbitMQ

北桥苏

RabbitMQ AMQP php-amqplib

Cloud Kernel SIG月度动态:发布ANCK 5.10、4.19新版本,ABS新增仓库构建功能

OpenAnolis小助手

开源 CVE anck 龙蜥sig Cloud Kernel

搜索接口优化方案——幂集分词表

北桥苏

php elasticsearch thinkphp 搜索引擎;

还在为项目初始化、依赖管理问题困扰?Dubbo Initializer 来了!

阿里巴巴云原生

阿里云 云原生 dubbo

Electron登录注册桌面应用源码+安装文件的打包方法

北桥苏

JavaScript Electron electron实战

为什么企业选择局域网即时通讯软件?局域网即时通讯软件哪家好?

BeeWorks

关于在 MySQL 排序中使用索引这件事!

江南一点雨

MySQL 数据库

PHP如何通过rabbitMQ死信队列实现业务的延时/定时操作

北桥苏

php RabbitMQ

TiDB x CAPCOM | 为在线游戏提供灵活、可靠、可扩展的数据库服务

PingCAP

mac屏幕分辨率调整用什么软件好呢?

真大的脸盆

Mac Mac 软件 屏幕分辨率调整

网络中的数据传输模式有哪些-镭速

镭速

Mac打不开后缀名为txt文件,显示文本编码中文不适用

互联网搬砖工作者

以PHP门面模式实现简单的邮件发送

北桥苏

php 设计模式 门面模式

如何实现文件共享,文件共享的设置方法

镭速

企业移动数字化平台如何赋能企业管理升级?

BeeWorks

代码实现RabbitMQ死信队列的创建

北桥苏

php RabbitMQ 消息队列 死信队列

inBuilder低代码平台开发者分享课丨变量命名要义

inBuilder低代码平台

开发者 低代码 变量

Node.js 23.6 提供 TypeScript 原生支持_后端_Bruno Couriol_InfoQ精选文章