再见 Typescript,你好 Javascript 原生打字 ✨

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

那么,如果我告诉你原生类型可能会出现在 Javascript 中呢?圣诞节快到了,男孩,我有礼物给你🎅

提案📄

TC39 是负责 Javascript 规范的委员会——他们帮助维护和发展 JS 的定义。
他们最近将类型注释提案移到了第 1 阶段(共 4 个阶段),这意味着是时候广泛推测此功能的影响和含义了!

尽管我喜欢戏剧化,但这不会以任何方式标志着 TS 的消亡,它只会为不打算使用 TS 或希望同时使用两者的项目提供更清晰、更可靠的 JS 代码。

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

这将非常接近我们目前使用 Typescript 和 Flow 的方式,即:

<span style="color:var(--syntax-text-color)"><span style="color:var(--syntax-text-color)"><code><span style="color:var(--syntax-comment-color)">// both parameters are numbers, and this method returns a number</span>
<span style="color:var(--syntax-declaration-color)">function</span> <span style="color:var(--syntax-name-color)">add</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-name-color)">a</span><span style="color:var(--syntax-text-color)">:</span> <span style="color:var(--syntax-name-color)">number</span><span style="color:var(--syntax-text-color)">,</span> <span style="color:var(--syntax-name-color)">b</span><span style="color:var(--syntax-text-color)">:</span> <span style="color:var(--syntax-name-color)">number</span><span style="color:var(--syntax-text-color)">):</span> <span style="color:var(--syntax-name-color)">number</span> <span style="color:var(--syntax-text-color)">{</span>
  <span style="color:var(--syntax-declaration-color)">return</span> <span style="color:var(--syntax-name-color)">a</span> <span style="color:var(--syntax-error-color)">+</span> <span style="color:var(--syntax-name-color)">b</span><span style="color:var(--syntax-text-color)">;</span>
<span style="color:var(--syntax-text-color)">}</span>
</code></span></span>

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

在我看来,严格类型化的争论在这次讨论中占有一席之地。在目前的提议中,这些类型只是类型注释,这要归功于 JSDoc 我们已经有了。所以问题仍然存在:为什么?

重点是什么?🤷

我们的处境很奇怪:Javascript 是仅有的几种让我们用一种语言 (Typescript) 编写然后将其转换为另一种语言 (Javascript) 的语言之一。这些层增加了任何项目的复杂性,因此我们添加到默认工具带的工具越多越好。

对 Typescript 的需求创造了一种对当前可用工具的垄断形式,其中每个工具都需要与 TS 一起发展,以免落伍。Octoverse 2022的状态显示了 Typescript 在 2022 年令人印象深刻的流行,这意味着这种发展需求对于您的 linters、bundlers 等几乎是强制性的。

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


你怎么看?如果它发布,你会看到自己使用这个功能吗?想到什么风险,特别是如果您是 Typescript 的狂热用户?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

产品大道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值