Node.js原生支持TypeScript?老铁这眼光,我真的服了!

共 3954字,需浏览 8分钟

 ·

2024-07-30 20:48

本公众号由以下老铁赞助,感谢他们❗️


品牌位赞助招募中

 合作 | 共赢 | 生态 | 发展 



01


前言


记得早在两年前,麒麟子就说如果开发游戏服务器,他只用两种语言:Node.js 或 Go,但他最后还是选 Node.js。

因为 Cocos Creator 3.x 全面转向 TypeScript 语言,能够驾御更大、更复杂的游戏项目。

后端使用 Node.js 的话,那只需要一门编程语言,就可以同时搞定前后端开发,何乐而不为呢?

说真的不得不佩服,麒麟子对技术的敏锐与长远眼光!


02


Node.js实验性功能支持TypeScript



最近,Node.js 社区果然传来激动人心的消息:Node.js 将通过实验性功能,原生支持 TypeScript!

相信做 Web 前端或使用 Node.js 开发服务器的老铁,都喜欢 Node.js 的轻量与高效。

但,随着 TypeScript 的兴起,许多老铁都希望 Node.js 能直接运行 TypeScrip 代码,而不是要先将 TS 代码编译成 JS 再运行。

现在,这一期待即将成为现实!

现在你只需通过 github 合并 PR#53725,Node.js 引入了一项新特性:通过设置 --experimental-strip-types 参数,就可以直接执行 TypeScript 文件了。

Node.js 将自动将 TypeScript 源代码转译为 JavaScript 源代码,无需手动安装转译工具。通过简单的命令 node index.ts 直接运行 TS 文件。

需要注意的是,转译过程中所有类型信息将被丢弃,Node.js 称之为 "type stripping"(类型剥离)。

例如,原本的 TypeScript 代码:

const foo: string = "foo";

将被转译为:

const foo = "foo";

虽然这一功能很是让人兴奋,不过目前它还存在一些限制,它还不支持 TypeScript 的一些高级特性,如:枚举和命名空间。

还有 .ts 文件不能使用 .js 扩展名,也无法在 node_modules 中运行 TypeScript 文件。


03


Node.js支持TS路线图


不过这只是实验性支持的第一步,Node.js 团队已经在 GitHub 上发布了详细的实验性支持 TS 路线图。

链接:https://github.com/nodejs/loaders/issues/217

Node.js 支持 TypeScript 的路线图可以概括为以下几个主要步骤:

  1. 第一步:初始实现

    • 引入 --experimental-strip-types 标志,用于概念验证和收集项目合作者的反馈。

    • 目前的限制包括不支持需要转换的 TypeScript 特性(如枚举、命名空间等),没有 .js 扩展名支持,不支持在 node_modules 中运行 TypeScript,以及没有源映射。

  2. 第二步:特性解耦

    • 类似于 Node.js 中 npm 的独立升级方式,考虑将 TypeScript 编译器作为可独立升级的组件。

    • 创建一个可从 npm 下载并包含当前 Node 使用的 API 的包,允许用户根据需要升级 TypeScript 版本。

  3. 第三步:性能优化

    • 在项目稳定运行的基础上,开始考虑性能问题。

    • 考虑将 SWC 编译器集成到 Node.js 中,可能的优化方法包括使用 Rust、WebAssembly 或静态库等。

  4. 第四步:增加更多特性

    • 扩展对 TypeScript 特性的支持,包括需要转换的特性。

    • 考虑允许在 node_modules 中运行 TypeScript 文件,尽管这一点目前尚未达成共识。

    • 提供额外的实用工具和配置选项,如转换器 API、tsconfig 支持等,以提高用户体验。

后续将会有更多特性得到支持,新特性必须做到不破坏现有的生态系统,同时保持 Node.js 的稳定性和性能。

整个过程,Node.js 团队会持续收集社区的反馈,并根据反馈进行调整,避免引入可能导致不稳定的因素,同时提供足够的灵活性以适应 TypeScript 的新特性和变化。

你对于 Node.js 原生支持 TypeScript,你怎么看呢?欢迎在评论区留言分享你的看法!
今天的分享就到这里,感谢点赞再看!我们下期再见!



本公众号由以下老铁赞助,感谢他们!



游戏开发,副业变现
晓衡的愿景是助力 1000 位个人开发者
一年独立挣钱10W+
欢迎加晓衡微信
IAA小游戏同质化有点严重!背包like成为流量密码?
无需版号可上线测试?广东省已率先开始!
一群看穿市场的开发者们!7月精品推荐
从入门到爆款?16套视频教程助你起飞(免费)
用这个看微信小游戏排行榜,真是太方便了!
6月微信小游戏排名TOP!用户喜欢什么样的游戏?
2024小游戏出海!11家门户渠道要记住了
吃透这2个指标!真正读懂微信「畅玩榜」


浏览 142
1点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
1点赞
评论
收藏
分享

手机扫一扫分享

分享
举报