APP下载

TypeScript 解决了什么痛点?

消息来源:baojiabao.com 作者: 发布时间:2026-05-16

报价宝综合消息TypeScript 解决了什么痛点?

原文:https://www.zhihu.com/question/308844713/answer/640331606

1. TS是什么 ?

TypeScript = Type + Script(标准JS)。

2. 为什么要用TS ?

目标:生命周期较长(常常持续几年)的复杂SPA应用,保障开发效率的同时提升程式码的可维护性和线上执行时质量。

从开发效率上看,虽然需要多写一些型别定义程式码,但 TS 在 VSCode、WebStorm 等 IDE 下可以做到智慧提示,智慧感知 bug,同时我们专案常用的一些第三方类库框架都有 TS 型别宣告,我们也可以给那些没有 TS 型别宣告的稳定模组写宣告档案,如我们的前端 KOP 框架(目前还是蚂蚁内部框架,类比 dva ),这在团队协作专案中可以提升整体的开发效率。从可维护性上看,长期迭代维护的专案开发和维护的成员会有很多,团队成员水平会有差异,而软件具有的特质,长期迭代维护的专案总会遇到可维护性逐渐降低的问题,有了强型别约束和静态检查,以及智慧 IDE 的帮助下,可以降低软件腐化的速度,提升可维护性,且在重构时,强型别和静态型别检查会帮上大忙,甚至有了型别定义,会不经意间增加重构的频率(更安全、放心)。从线上执行时质量上看,我们现在的 SPA 专案的很多 bug 都是由于一些呼叫方和被呼叫方(如元件模组间的协作、界面或函式的呼叫)的资料格式不匹配引起的,由于 TS 有编译期的静态检查,让我们的 bug 尽可能消灭在编译器,加上 IDE 有智慧纠错,编码时就能提前感知 bug 的存在,我们的线上执行时质量会更为稳定可控。3. 使用 TS 的成本

学习成本

理论上学习并应用一门新语言是需要很高成本的,但好在 TS 本身是 JS 的超集,这也意味着他本身是可以支援现有 JS 程式码的,至少理论上是这样。学习一下型别系统的相关知识和面向物件的基础知识,应该可以 hold 住 TS,成本不会很高。官方文件是最好的学习材料。

4. 社群发展

从 Stackoverflow 的2017年开发者调查报告、Google趋势、npm下载量趋势上可以到看,TypeScript社群发展很快,特别是最近几年。特别是伴随着 VS Code 的诞生( TS 写的,对 TS 支援非常友好),VS Code + TypeScript 的组合让前端圈产生了一股清流,生产力和规范性得到了快速提升。从 Google 对 TS 的支援(Angular 高于 2 的版本是 TS 写的)看到,国际大厂也是支援的。

从蚂蚁集团内部看,Ant Design、Basement 等产品也是基于 TS 写的(至少是在大量使用),虽然有一些反对的声音,但总体还是看好的,有合适的土壤就会快速发展,如 Ant Design。

5. 接受TS

TS 刚出来时我是有点抵触的,或者对她的感觉就跟和CoffeeScript、Dart等编译到JS语言差不多,感觉就是其他语言往JS渗透的产物,近一两年,社群中TS的声音越来越强,而我也开始做大型 JavaScript 应用,随之逐渐重新认识 TS,逐渐认识到 TS 的型别系统、TSC 的静态检查、VS Code 等 IDE 的强力支援对于开发出可维护性好、稳定性高的大型 JavaScript 应用的重要性。

6. 权衡

如何更好的利用 JS 的动态性和 TS 的静态特质,我们需要结合专案的实际情况来进行综合判断。一些建议:

如果是中小型专案,且生命周期不是很长,那就直接用 JS 吧,不要被 TS 束缚住了手脚。如果是大型应用,且生命周期比较长,那建议试试 TS。如果是框架、库之类的公共模组,那更建议用 TS 了。至于到底用不用 TS,还是要看实际专案规模、专案生命周期、团队规模、团队成员情况等实际情况综合考虑。

所以 TypeScript 能不能成为了你的 “刚需” 就看你自己的情况了。

7. 专案实战

Vue3.0 将使用 TS 重写,重写后的 Vue3.0 将更好的支援 TS。2019 年 TypeScript 将会更加普及,能够熟练掌握 TS,并使用 TS 开发过专案,将更加成为前端开发者的优势。

笔者最近也用 vue + TypeScript + Element 进行了一次实战,感觉还是不错的。

虚影:Vue + TypeScript + Element 专案实战及踩坑记​

zhuanlan.zhihu.com

TypeScript 的出现, 终于让 JavaScript 不会因为没有静态型别检查,而被后端工程师看低了。

2020-01-13 22:55:00

相关文章