JS最大的优势就是灵活快速,有一套非常高效的追踪查看流程(开发者工具,丰富的开源组件),熟练掌握后开发很容易进入心流状态,十分畅快!
而一旦用上TS,这种畅快感就会被打断,且不说不熟练的情况,就算十分熟练,也要多写和多看些interface type,被琐碎的定义打散思路,丢失掉这门语言的优势.
如果你是熟手,你应该有自己的见解;如果你项目刚需,那也不必多想;其实最推荐的是大家通过自己的实践去体会,同时用纯js和ts分别开发好几个项目,这样才能比较全面的体会两者的区别,我就是这么做的.
但我也深知这么做所需要耗费的精力,不是一点半点.所以这篇文章是给项目非绑定TS,还在JS和TS选择上左右摇摆,我用经验来给出一套相对中肯的建议:
用纯js开发,将自由度和高效发挥到极致,回头用AI生成d.ts或jsdoc完成代码提示的支持,统一使用module而不是common,不断去拆分可复用逻辑,让代码具有更好的可读性可维护性.
不要看着好像所有开源项目都上了TS就盲目跟风,那是因为TS最大的优势是给编辑器提供良好的静态分析支持,在代码写的特别多的情况下,自己都会忘记曾经定义的一些参数细节.作为一个工具提供方,要让别人能够愉快的使用,那说明书肯定得提供好的是不.
最后总结,要是在一门为动态设计的语言中,去练习静态带来的优势,远不如直接去真正的静态语言修炼带来的收益大.动态和静态没有对错,都有其刚需发挥作用的场景,就像菜刀和螺丝刀,切菜就用菜刀,打螺丝就用螺丝刀,一个带螺丝刀的菜刀并不会有多好用.
https://www.tiobe.com/tiobe-index
我预言JS未来在动态语言中,起码能做到跟python平起平坐(在我的实践中,它已经超越了我曾经最爱的动态语言,做过不少项目的,小蟒蛇)