再见 Typescript,你好 Javascript 原生类型✨

2025-05-25

再见 Typescript,你好 Javascript 原生类型✨

打字。无论你喜欢还是讨厌,它都有很多优点:更好的 DX(通过智能感知自动完成)、更清晰的代码文档、更少的耗时错误。它的好处远远超过了它的成本,那么为什么有些人仍然避免使用它呢?答案只有一个:Typescript。你必须设置它并确保你的工具正常工作,这可能会给任何项目增添一层挫败感。

那么,如果我告诉你原生类型可能会出现在 JavaScript 中呢?圣诞节就要到了,我有一份礼物给你🎅

提案📄

TC39 是负责 JavaScript 规范的委员会——他们帮助维护和发展 JS 的定义。如果你感兴趣的话,我在之前的文章中专门写了一节关于他们的内容。
他们最近将类型注解提案移到了第一阶段(共四个阶段),这意味着是时候广泛探讨这项功能的影响和含义了!

尽管我喜欢戏剧化,但这绝不意味着TS 的消亡,它只是为那些不打算使用 TS 或希望同时使用两者的项目提供更清洁、更可靠的 JS 代码。

如果该提案通过,原生 JS 类型将会是什么样子?

它与我们目前使用的 Typescript 和 Flow 非常接近,即:

// both parameters are numbers, and this method returns a number
function add(a: number, b: number): number {
  return a + b;
}
Enter fullscreen mode Exit fullscreen mode

这些注解不会阻止您传递字符串或任何其他类型的变量作为参数。它们在运行时会被忽略,仅作为指导原则,供第三方类型检查器(例如您的 IDE)使用。

我认为,严格类型论证在本次讨论中是有其地位的。在目前的提案中,这些类型只是类型注解,这多亏了 JSDoc,我们已经拥有了。所以问题仍然存在:为什么?

这有什么意义?🤷

我们处境很奇怪:JavaScript 是少数需要我们用一种语言(Typescript)编写,然后再将其转换为另一种语言(JavaScript)的语言之一。这些层级结构会增加任何项目的复杂性,因此,我们在默认工具带中添加的工具越多越好。

对 Typescript 的需求导致现有工具出现垄断,所有工具都需要与 Typescript 同步演进,才能不被时代甩在身后。2022年 10 月的《State of the Octoverse》报告显示,Typescript 在 2022 年将迎来惊人的流行度,这意味着 Typescript 的演进对于你的 Linter、打包工具等来说几乎是强制性的。

将此功能与我们亲爱的 Javascript 捆绑在一起只会使其成为一个更完整的包,并帮助我们减缓我们目前面临的明显的工具膨胀问题。


您觉得怎么样?如果这个功能发布,您会使用它吗?如果您是 Typescript 的忠实用户,您会想到哪些风险?

欢迎在Twitter上关注我(如果你读完这篇文章时我的 Twitter 还没有崩溃的话),和你们中的一些人联系总是一件很愉快的事 😄

文章来源:https://dev.to/christopherkade/goodbye-typescript-hello-native-typing-for-javascript-3ee1
PREV
为您在 DEV 上的文章引入横幅生成器
NEXT
使用 HTML/CSS 开发星球大战开场动画步骤 1:创建背景步骤 2:添加著名的介绍短语步骤 3:显示徽标步骤 4:添加滚动文本最后的润色:音乐最后的想法