前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【译】为什么要使用TypeScript

【译】为什么要使用TypeScript

作者头像
腾讯IVWEB团队
发布2020-06-28 10:43:23
5700
发布2020-06-28 10:43:23
举报

原文地址:Why I use TypeScript 作者:ddprrt

大家可能会发现,最近我的博客开始以TypeScript为中心。这看起来可能有点偏离我通常写的博客和倡导的内容:高性能、易访问性以及有弹性的网站。

很多人问我,为什么要大量使用TypeScript,为什么我将其视为日常工作的核心部分之一。让我通过与TypeScript的三次邂逅与大家阐述一下。

2012年11月——本地议会上的TypeScript

TypeScript发布一个月后,有人在我们的一次本地议会中展示了其功能特性,我甚至写了一篇关于TypeScript的博客。当时,我可以看到TypeScript带来的好处,但是依旧保持怀疑态度,尤其是看到我的朋友在使用TypeScript的时候。他们主要来自于后端,如Java和C#。这就是为什么他们需要强烈依赖于如抽象类、接口层级结构、工厂、静态类等等。而所有这些POOOP(面向对象编程的模式)和SHIT(层级结构接口树)需要在JavaScript中使用吗?

这不是JavaScript,而我喜欢JavaScript!因此,我摒弃了TypeScript。

2015年左右——尝试Angular

出于好奇,我尝试了即将发布的Angular版本,这是Angular 2的候选版本。而这个版本的Angular,将TypeScript推向了更高的流行程度。尝试过程中,我要做得的第一步就是非常严格的遵循所定义的类型。在代码中,需要通过各种注释和Angular装饰器以便让TypeScript理解你的代码。其中,any类型是我最好的朋友。

最终,我放弃了。我想我说过:TypeScript想要知道后端数据的结构类型,而我怎么知道?我甚至没有控制台来记录这些数据。

而且,这不是JavaScript,而我喜欢JavaScript!所以,我决定暂时远离TypeScript。平心而论,在当时我对Angular的了解十分有限。当然了,我想我也很愿意改变这一现象。

2018年陪产假——学习

我在2018年休了三个月的陪产假,并且有机会在宝宝睡觉的时候学到很多东西。我学习了新的编程语言,并且自认为应该尝试一下TypeScript和React。

在使用TypeScript时,我发现可以像使用JavaScript一样使用它。不会有对编译器的抱怨,也不需要额外的注释。另外,TypeScript会不断分析我的代码,在我每次编写时,编辑器可以在不做任何操作的情况下为我提供大量的代码信息。

如果是使用VSCode来编写JavaScript,你很可能无意识的就使用了TypeScript。TypeScript语言服务在编辑器后台运行,通过分析代码尽可能多的为你提供信息。这可以让你无需做任何操作就能获得良好的开发体验。

TypeScript成为了另外一个大脑,它比我更加了解我的代码。如果TypeScript在某些方面没分析到位,可以通过添加一些额外的类型信息让其理解。由于我们可以通过JavaScript做很多事情,因此TypeScript力求我们在代码中尽可能完整的编写所有的JavaScript代码结构类型。

这和TypeScript的设计目标十分吻合:

  • 渐进式。这意味着当你需要的时候,可以随时使用TypeScript的功能特性。
  • 广泛的类型推断。TypeScript能够理解你的JavaScript。
  • 控制流分析。TypeScript能够帮助你缩小可能的类型范围。
  • 紧跟ECMAScript标准。不会遇到未达到ECMAScript第3阶段的功能特性。
  • 类型系统。TypeScript希望提供更好的方式来表达JavaScript。
  • 工具化。TypeScript并不是在限制你,而是为你提供提高生产率的工具。

那个时候,我还在YouTube上看了很多有关介绍历史的JSConf老视频。我在JSConf.EU 2012上偶然发现了一份介绍TypeScript的视频,视频中Anders描述TypeScript的设计目标并没有太多改变。从一开始,TypeScript的目标就是成为JavaScript之上的类型层。而其语言特性是一个副作用,这些副作用基于先前标准化工作的大量尝试性功能,例如ES4。

所以,TypeScript就是JavaScript,具有优势的JavaScript。而我喜欢JavaScript,也喜欢优势。

我的方法:

  1. 编写JavaScript,要更乐意见到非any类型
  2. 每当想要有更好的类型时,请添加注释
  3. 当重新访问项目时,将类型作为额外的文档使用
  4. 远离任何将类型注释和JavaScript第3阶段特性混合使用的额外语言功能,这些已经成为过去式。

当你那样编写代码时,就很容易喜欢上TypeScript。这就是为什么我会经常使用它以及写关于TypeScript的原因。TypeScript可以帮助现在和未来的我以及我的伙伴了解编写时候的想法。

顺便说一句,如果你想获得收益又想避开编译步骤,可以查看这篇不是TypeScript的TypeScript。这实际上是有用的,例如Preact库提供了对TypeScript完整的支持和工具链,但仍然是通过JavaScript来编写和贡献代码。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2012年11月——本地议会上的TypeScript
  • 2015年左右——尝试Angular
  • 2018年陪产假——学习
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档