很多地方把JS和TS放在一起,相提并论,容易造成误解,以为已是旗鼓相当的两种编程语言.其实根始终都是JS,虽然JavaScript这名称听起来实在有点山寨味,这可能是很多项目想用Typescript称呼代替它的原因
剥离掉JS部分,TS不是编程语言,不是什么高级的东西,只是在JS基础上添加的类型定义文档型语言.在没有TS之前,对一些嵌套继承结构,复杂重载等,光看代码比较晦涩,人们可能就靠备注,汇总文档,做笔记,这样对照着来理解和写JS.屏幕不够用的需要来回切屏,英文不好的朋友容易敲错字母
写TS的过程,就是在给你代码中去写文档,添加类型定义,不过格式要求更规范,不能像之前的文档那么开放自由
有了TS的内嵌文档和标准的格式,编辑器就能够用上,帮助你进行更好的推断,对你正在编写的对象调出文档说明,补充候选提示,就像这样:
这当然很棒,没人不喜欢这样健全的提示,这便是TS的核心作用:
现在你可以理解,为什么优质大型项目,都使用TS了吧?
但如此强大的内置代码型文档,其完成的复杂性通常也是比你自己写备注文档要高的,尤其在你还不熟悉其规范的情况下.自己写文档可以只挑选重点,配合截图,翻看代码.但写TS,因为代码的结构性相关性,经常需要传导的那一溜都写完,才能获得良好的提示
这也就是为什么很多人赶起项目来,直接@ts-nocheck :any之类的无脑用,直接在ts中写js.其原因是因为此时的重点是需要快速高效实现业务逻辑,而不是同时去编写文档
实际上使用TS是一个自然的过程,当你的项目逐渐趋于稳定,时间不再那么紧迫,又有足够的人手或精力来补充维护文档,这时来专心写TS就非常合适
可见TS从来就不影响核心逻辑,不增加代码运行效率,只对文档和类型定义做补充,所以使用TS不一定代表项目就强,强的人可能从来不写文档(开玩笑,肯定多少还是会写,人脑没有计算机这样的存储能力)
如果你是新项目刚起步,敞开用JS+自制文档吧,最高效,在一开始就写TS文档给项目加固实则会限制你项目的发展,变化艰难.等到需要的时候自然会用上TS,并且可能整天整天的都在写TS,一下就干熟练了,不用担心掌握不了
如果是公司要求上TS,你看着来,写写文档也没什么不好,起码你看完之后懂得了心法,能够收放自如