Svelte:TypeScript 并“不值得”用来开发库
创始人
2025-07-09 21:21:40
0

Svelte 的一个将 TypeScript 转为 JSDoc 的拉取请求引起了一些困惑的评论。评论中有人说:“这个改变是出于什么原因呢?我在到处寻找这个问题或相关讨论,但我没有找到。” 随后,这个问题在 GitHub 上因“讨论过于激烈”而被锁定回复。

在上个月的一次 Svelte Society 采访中,Harris 提供了进一步的背景信息,他说:“我们决定要做的一件事就是在 Svelte 核心代码库中脱离 TypeScript,转向使用 JavaScript。这里有一些细微的复杂性我未曾充分解释。”

他持有的观点是:“类型是非常好的,但是 TypeScript 确实有些困扰…… 当你开始使用 .ts 文件后,你就必须有相应的工具来支持…… 当你使用像 TypeScript 这样的非标准语言时,你会遇到很多阻碍,我已经开始认识到这并不值得。因此,我们将我们所有的类型都放入了 JSDoc 注解中,我们也能获得所有的类型安全性,但没有任何的缺点,因为它就是 JavaScript,所有的东西都在注解中,你可以直接运行代码。这就是我们在 Sveltekit 代码库中所做的,它在 Svelte 4.0 中表现得非常好,所以我们决定对 Svelte 同样采取这种方式,因为这将让我们能够更快速地前进。”

虽然 Svelte/SvelteKit 并非最受欢迎的 JavaScript 框架,但它却是广受好评的框架之一。

开发者倾向于使用 TypeScript,主要因为他们发现强类型降低了错误的发生率,并提升了编码过程中的体验,如代码自动补全和即时帮助等功能。然而,令人惊讶的是,主要做为 API 文档工具的 JSDoc,也可以进行类型检查。这项功能已直接内置在 Visual Studio Code 中,如 这篇文档 所述。开发者只需在 JavaScript 文件顶部加上:

// @ts-check

正如文档中的解释,“当无法推断出类型时,可以利用 JSDoc 注解进行明确说明”。这个特性实际上是由 TypeScript 提供支持,这意味着在实际环境下,TypeScript 和 JSDoc 是相辅相成的。

不过,一个易被忽视的细节是,Harris 主要是在针对库开发的上下文里关注 TypeScript。他认为切换到 JSDoc 在开发应用时,“可能收益不大”,他说道:“如果你在开发一个应用,无论怎样你都不可避免地需要一个构建步骤。你需要优化代码,需要代码压缩,需要打包各种资源。而如果你在构建一个库,我将极力推荐你使用 JSDoc。”

Harris 在 Hacker News 进一步 补充,“Svelte 的用户无需担心,这个变动不会影响到你与 Svelte 使用 TypeScript 的能力——从 Svelte 导出的函数仍然会有所有熟悉的 TypeScript 好处,如类型检查,智能感知,内联文档等”。他坚定地表示:“我们对 TypeScript 的承诺比以往任何时候都更为坚决。”

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
P2P的自白|我不生产内容,我... 现在一提起P2P,人们就会联想到正在被有关部门“围剿”的互联网理财服务。×租宝事件使得劳...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...