一位前JavaScript-only开发人员解释了为什么他从反TypeScript变成了TypeScript的粉丝。ChiragSwadia自称是Anti-TypeScript的JavaScript开发者。谈及反对的理由,他一直认为,为函数/变量添加类型以满足TypeScript编译器的要求是一种过度工程(Over-Engineering)的设计。因为这并没有提供任何有意义的便利,而且降低了开发效率——Chirag说他一开始总是遇到一些无法理解的编译错误,需要花时间去处理。他也因此感到沮丧,开始讨厌TypeScript。另一个原因是Chirag难以理解TypeScript中的泛型等高级概念。他觉得自己置身于Java的世界里,每一行代码都是强类型的,让人不知所措。当Chirag开始学习TypeScript时,他甚至害怕下面这样简单的代码。▲TypeScriptGenericsExample所以,基于以上原因,虽然Chirag通过看教程或看书来学习TypeScript,但他从未参与过任何用TypeScript编写的企业项目。变化发生在奇拉格就任新职位后。这个时候项目的技术栈是TypeScript,他负责的应用都是用TypeScript写的(只有遗留代码是JavaScript代码),所以他不得不写TypeScript代码。正如Chirag预料的那样,一开始这对他来说是一个很大的挑战,他对TypeScript的仇恨也因此而增长,但最终在几个月后,他发现了TypeScript的好处以及其他人喜欢TypeScript而不是JavaScript的原因。Chirag还列出了他是TypeScript粉丝的三个原因。不可能的状态无法恢复和详尽的检查Chirag说这是他喜欢TypeScript的主要原因。他举了一个使用TypeScript来避免React应用程序中不可能状态的例子,这个例子描述了交通灯系统处理不可能状态的情况(点击这里)。Bug可以早发现Chirag说,在使用JavaScript时,他遇到过很多次在生产环境中发现前端没有类型检查而导致的Bug。TypeScript编译器可以在编译时避免和发现这些错误,从而节省研发和QA工作周期。他争辩说,使用TypeScript,你可以保留最初定义的所有内容,如果你将变量声明为布尔值,它将始终是布尔值,而不会变成数字。这增加了代码按最初预期运行的可能性。简而言之,代码是可预测的。丰富的IDE支持和轻松的重构Chirag认为类型相关的信息可以让IDE更有用,比如获取代码跳转和自动完成,IDE会提供准确的建议。此外,在您键入代码时获得即时反馈,因为编辑器会在错误发生时对其进行标记,包括与类型相关的错误。这些功能帮助开发人员编写可维护的代码并带来巨大的生产力提升。至于重构,Chirag举了一个例子,比如引入一个新的状态或者移除应用正在使用的不必要的状态。如果此时忘记更新某些引用,TypeScript编译器会发出警告。他还表示,重构后的应用程序将以重构前的方式工作,所以不用担心兼容性问题。本文转自OSCHINA文章标题:为什么我从黑变成了TypeScript的粉丝?本文地址:https://www.oschina.net/news/131695/anti-ts-developer-became-a-ts-fan
