当前位置:首页 > 每日看点

如何看待 2025 年 3 月 11 日微软公开的 TypeScript-Go 项目?

卡卷网1年前 (2025-03-14)每日看点548

等了好多年的项目。。。之前项目里代码很多,VSCode 经常因为 TypeScript 卡死。

这是什么?用 Go 语言重写的 TypeScript 编译器,将成为后续的 TypeScript 7 版本。

怎么实现的?基本就是将 TypeScript 项目里的代码从 TypeScript 逐行转成 Go 语言,函数名都一样,下面是一个简单函数的对比:

/ /typescript 版本 function getElementTypeOfArrayType(type: Type): Type | undefined { return isArrayType(type) ? getTypeArguments(type)[0] : undefined; } // go 版本 func (c *Checker) getElementTypeOfArrayType(t *Type) *Type { if c.isArrayType(t) { return c.getTypeArguments(t)[0] } return nil }

为什么是用 Go 语言?如果既要性能又要方便迁移代码,这是当前最好的选择,因为有 GC 使得代码里很容易实现循环引用,相比之下 Rust 写起来就太麻烦了,必须依赖内存池等方案。

用什么用处?可以提升现有 IDE 里的语法检查及编译 TypeScript 的速度,号称提升 10 倍,利好大型 TypeScript 项目开发。

和现有工具比?现有的类似工具主要做编译,比如 SWC 等都不做类型检查,而 Typescript-Go 除了编译还会做类型检查,提供 LSP 服务等。

未来前景?主要用使用场景将局限在 IDE 中提供类型检查和 LSP 服务,预计编译速度不会超过 SWC,而且现在 Bun、Deno 及新版 Node 都直接支持运行 TypeScript 了,用起来方便得多。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/03/11871.html

分享给朋友:

相关文章

我觉得华为Mate60Pro明明配置不高,为什么还是有那么多人买呢?

我也好奇啊,所以闲聊时,我问了我们公司的副总,我说Mate60pro配置这么拉胯你怎么还买啊? 他一脸疑惑的看着我,配置?什么配置?我这手机信号挺好的啊? 我们总经理用的是去年华为出的折叠手机,花了一万多,我也想问问他同样的问题,但奈何一直…

拼多多,怎么就成为了年轻人的「赛博菜市场」?

拼多多,怎么就成为了年轻人的「赛博菜市场」?

可惜你不在拼多多买水果蔬菜,很难一句话跟你解释,我只能笨拙的用经历来慢慢讲。 我们公司有微波炉,同事们几乎都是自己带饭来上班,便当荤素搭配、水果零食;都是好看又好吃。 我自己本来就不喜欢外卖,当然也加入了带饭大军: 直到某一天深夜我闲着…

抖音小店三个月了一单没出,也没有流量,一个星期好像都没有一个点击,怎么办?

抖音小店三个月了一单没出,也没有流量,一个星期好像都没有一个点击,怎么办?

好消息,你有毅力上200多个品,还能坚持三个月 坏消息,一单没出 我感觉你还是别碰抖店了,甚至电商平台都别碰 你没这个缘分 我要是这样,我得用一百辆叉车叉死我自己 你如果还想坚持,我直接给你这套至少价值19800学来的新思路 简单来说就是…

怎样拥有一台最便宜的服务器?

怎样拥有一台最便宜的服务器?

内容提示:主打一个 DIY + 极限白嫖 =) 某宝花10块买一个“随身WiFi”,刷入Ubuntu,用SSH远程连接,但是记得一定要把外壳撬掉然后粘个散热器(哪怕是白萝卜也彳亍),否则会过热 详细去酷安社区搜“随身WiFi” ======…

鸿蒙系统到底是不是安卓系统?

你好,是的。 接下来我给不懂技术的人简单的说一下哄蒙系统的来龙去脉。 首先你要知道什么是开源。 ‌‌开源 (Open Source)全称为开放源代码‌,意味着任何人都可以获取和使用软件的源代码,并在遵守版权协议的前提下进行修改和再发布。‌1…

为什么 lnx 求导是 1/x?

为什么 lnx 求导是 1/x?

其实,我想对题主说,你提的问题一点都不弱智。恰恰相反,这是个非常有意义的问题。我们学习一门知识,尤其是数学知识,要知其然,更要知其所以然。今天,我尝试从 “如何去定义“的角度出发来解释这个问题,不玩公式推导的符号游戏。希望能带来新的启发。为…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。