TypeScript - 不止稳,并且快

前言

关于 TypeScript 是什么,应该大部分人都已经知道了,可是在这儿,仍是摘抄一下知乎的回答:前端

TypeScript 是 JavaScript 的强类型版本。而后在编译期去掉类型和特有语法,生成纯粹的 JavaScript 代码。因为最终在浏览器中运行的仍然是 JavaScript,因此 TypeScript 并不依赖于浏览器的支持,也并不会带来兼容性问题。程序员

对于我我的而言, 使用 TypeScript 写项目已经有半年多了,中间有被 TypeScript 的配置与升级折腾到想砸电脑的时候,也有提早发现错误时的暗自庆幸,同时也有由于找不到类型定义文件而本身手写,提PR补全的时候。
总的来讲使用 TypeScript 的这一年,什么感受都有。但最后仍是依然坚持使用 TypeScript ,由于其带来的效率提高是远远大于环境升级所带来的开销的。typescript

稳定压倒一切

做为程序员,天然但愿代码上线以后能安安稳稳的跑着,而不是忽然报错崩溃啥的。
因此 TypeScript 以前最被看重的就是静态类型检查功能。shell

至于静态类型检查的做用,在知乎的另外一个回答中有相关的回答:npm

静态类型检查能够避免不少没必要要的错误, 不用在调试的时候才发现问题 (其实有的时候根本调试不出问题, 只是默默地把坑挖了, 说不定埋的就是个炸弹, 以前用 TypeScript 重写应用的服务器端程序, 写完以后就发现了很多暂时没有影响到运行的严重问题).json

懒人的自我救赎

然而,我是个很“懒”的人,不肯在重复的事情上花上不少时间,也不喜欢像背书一下,背下来 Api 文档。更但愿本身的时间能专一于核心业务的开发,而非边边角角的事情。浏览器

去年十月,在由于实际学习须要,接触愈来愈多前端框架时候,感受成天的开发,大半的时间都浪费在了查文档上,特别是一些 React 的组件,props又多又长……每次写的时候,都得回去翻文档,简直绝望。bash

在这种天天近乎绝望的重复劳动下,我开始尝试去找解决方法,再到后来有一天接触了 TypeScript ,感受到这就是本身想要的功能。
嗯……看中的不是 TypeScript 的稳定性,而是 TypeScript 的代码提示。前端框架

好比写 Node.js,使用 TypeScript 与 不使用的区别是这样的:服务器

不只不用手动翻阅 Api, 并且参数是什么也都一清二楚了。

且TypeScript 的代码提示是基于类型文件工做的,而相比于各个编辑器本身定义的代码片断来讲,不只有大量的志愿者去维护,更新及时,并且种类繁多,基本现有的流行框架类库,都有相应的类型定义文件。

因此自打用上 TypeScript 后,就过上了不再用去费脑子记 Api 和参数的日子,开发效率与幸福感都获得了大大的提高。

不止稳,更要快

而 TypeScript 的快,不只体如今代码提示上,同时也体现于重构、可读性和配套的编辑器上。

代码重构

在重构上,这个本身是有实际体会的,若是写JS,重构时候不当心改了啥,除了运行时候能发现,其余时候每每难以察觉,且 ESLint 也只能是排查简单的问题,因此出了BUG会很是麻烦。
而 TypeScript 不同,重构了,从新编译一下就知道,哪里错了,哪里改动了不该该改的。对于我本身这种时不时就会重构的人来讲,省时又省力。

可读性

可读性上,TypeScript 明显占优,查看开源代码时,若是注释不是很完善,每每会看的云里雾里,而 TypeScript 在同等条件下,至少有个类型,能让本身更容易明白代码的参数、返回值和意图。

编辑器

这个是不得不提的部分,由于 VSCode 实在是太方便了,性能也高,且编辑器自身保持着一个高速的开发与迭代状态,时不时就能感觉到 VSCode 开发团队的诚意和其所带来的惊喜。

由于都是微软家产品的缘由,VSCode 对 TypeScript 的支持也至关完善。各类插件也层出不穷,基于 TypeScript 作的 Automatic Type Acquisition 功能使得 JavaScript 的用户也能享受到详细的代码提示功能,这一点上比 Sublime 等编辑器方便了不少。

关于 VSCode 编辑器的上手与配置,能够看阎王发表的这篇文章:如何快速上手一款 IDE - VSC 配置指南和插件推荐

解放本身,专一业务核心开发:TypeScript 编辑器插件推荐

固然,每次写 TypeScript 时,依然会遇到一些烦心的问题和重复的劳动。
好比说,TypeScript的类型定义文件是须要手动下载相应的 @types 包的,虽然相比于以前的方式已经进化了不少,可是每次还要重复,依然会以为繁琐。
因此下面会推荐本身经常使用的几个插件,把本身从繁琐无趣零成长的工做中解放出来。

TypeScript Importer-告别手动重复写import的日子

插件地址:TypeScript Importer

这个是我最喜欢的插件,具体的做用,一图胜千言:

在长长的路径里,导入另外一个文件夹深处的模块,那种感受是绝望……
每次都要重复的import,每次都要重复的判断路径,每次都要从新写一遍import……

虽然工做量也不大,可是确实会影响心情和效率。

Types auto installer - 自动安装相应的类型定义文件

插件地址:Types auto installer

在以前,你安装一个模块并在 TypeScript 运行两段命令。
以lodash为例:

npm i lodash --save
npm i @types/lodash --save

固然,你也能够合并到一句话去写。
虽然工做量不大……可是架不住量多啊……每开一个项目都得来这么一次,简直绝望……

因此当时就想着本身写一个自动安装类型定义文件的小工具,后面确实也写出来了,只是再后来又发现 VSCode 有这个插件,功能也很完善,就用它的了。
插件的做用很简单,就是当你运行:

npm install --save lodash

它会自动执行:

npm install --save @types/lodash

与此同时还有一键下载安装全部 package.json 依赖类型定义文件的功能,能够说是很是方便了。

Sort Typescript Imports-给你import的模块们排序

插件地址:Sort Typescript Imports

一样,话很少说,一图胜千言:

这是一个看起来没什么做用的插件……由于其实 import顺序是否整洁有序好像对开发效率啥的并无很大的提高。
但这是一个你接受了它的设定,就可能会以为十分有趣的插件……

具体的做用就是,让你的 imports 更有顺序,相近文件夹的排列在一块儿。看起来会更好看一些。

Emmm……若是必定要说做用的话,就是更好看一些吧……很符合我这种有轻微代码洁癖的人的心态……

为何要关注这个?

本身在知乎上有回答过一道问题:《最近一年前端技术栈哪些技术点最困扰你?》
个人回答是:

开发环境的搭建。
没有官方的cli,或者本身要作一些拓展(好比用ts)真的很是烦人。
各类报错,而这种在开发环境上积累的经验和踩的坑是价值很是低的。(由于基本最后翻官方配置文档都能解决)
耗时长,学习价值低,更新速度快。

在这儿,也是同理。
用 TypeScript 和相关插件所解决的问题,都是一些繁琐、无趣、零成长的工做,并且还影响心情。
有这个时间,为何很少陪陪女友,多学点东西,多解决一些有意思的问题呢?
因此这种可让计算机解决的问题,就让计算机去解决吧~

参考资料

相关文章
相关标签/搜索