Svelte:TypeScript 并“不值得”用来开发库

开发
TypeScript 的使用率在不断上升,Svelte 的开发者 Rich Harris 解释了为什么反其道而行,从 TypeScript 切换到 JavaScript 和 JSDoc。

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 的承诺比以往任何时候都更为坚决。”

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2021-10-17 21:48:27

硬件电脑装机

2021-06-09 07:14:32

数据分析互联网运营大数据

2012-05-21 13:13:08

火狐浏览器

2020-07-03 14:36:28

互联网印度市场手机

2015-08-14 13:12:20

4G

2023-02-13 13:50:48

研究offer

2020-06-04 18:30:06

二手硬件CPU主板

2019-05-10 09:29:18

甲骨文开发裁员

2018-08-22 11:09:33

QLCSSD硬盘

2018-09-05 15:06:00

GTX 1080Ti显卡NVIDIA

2021-05-08 23:26:32

大数据薪资工作

2017-09-22 12:00:24

Intel8代CPU酷睿处理器

2014-10-09 10:15:53

PayPal

2023-03-27 13:52:02

海景房主机桌面

2022-09-07 00:10:11

iOS测试版系统

2022-09-15 07:35:28

iOS16iPhone

2020-09-17 09:22:50

iOS 14iPad OS 14苹果

2019-12-03 14:08:21

iOS 13苹果升级

2018-07-23 08:52:56

Python 数据获取数据处理
点赞
收藏

51CTO技术栈公众号