今天尝试把自己写的记账改了一下,js部分改成ts,不禁在想ts有什么好处呢?搬运一下知乎上的某个回答 链接:www.zhihu.com/question/64…
如果大家如大学课程设计的一样,掌握了计算机基础的话,那么“静态类型”几个字本身就已经是答案了。
为什么静态类型有利于构建大型应用?我总结,利在两点。
其一,静态类型检查可以做到early fail,即你编写的代码即使没有被执行到,一旦你编写代码时发生类型不匹配,语言在编译阶段(解释执行也一样,可以在运行前)即可发现。针对大型应用,测试调试分支覆盖困难,很多代码并不一定能够在所有条件下执行到。而假如你的代码简单到任何改动都可以从UI体现出来,这确实跟大型应用搭不上关系,那么静态类型检查确实没什么作用。
其二,静态类型对阅读代码是友好的,比如我们举个例子 jQuery API Documentation 这是大家都非常喜欢用的jQuery.ajax,在这份文档中,详尽地解释了类型为object的唯一一个参数settings,它是如此之复杂,如果没有文档,我们只看这个函数声明的话,根本不可能有人把这个用法猜对。针对大型应用,方法众多,调用关系复杂,不可能每个函数都有人编写细致的文档,所以静态类型就是非常重要的提示和约束。而假如你的代码像jQuery这样所有函数基本全是API,根本没什么内部函数,而且逻辑关系看起来显而易见,这确实跟大型应用搭不上关系,那么静态类型对阅读代码确实也没什么帮助。
总结
1.TS最大的好处就是early fail 可以提早知道错误在哪里,而不是傻愣愣的等着js运行后再去看错误
2.第二个好处就是对阅读代码非常友好