CoffeeScript
和TypeScript
都是需要编译成JavaScript
的语言,毕竟浏览器不认识它们,但是这是两个出发点不一样的东西,可以短浅地梳理一下。
CoffeeScript
CoffeeScript
是创造了一种新的语法,为了简化JavaScript
的编写。可以认为是一种用于产生JavaScript
的脚本。一般来说最终产生的代码比原生的JavaScript
要短的,还有一些比较现代的语法糖,尤其是在ES6
没有出来前,非常有效。
为何要用CoffeeScript
我没有真正使用过,但是看官网的例子,代码简洁清爽,很现代化,甚至没有大括号。完成相同的功能,普遍比原生的JavaScript
要短,可以说是一种减少代码编写时间的工具,可以省下更多的时间喝咖啡。
但是CoffeeScript
的语法看起来跟原生的JavaScript
是不兼容的,所以在做一些代码搬运并缝合的工作的时候,似乎没有那么方便,虽然好像官网提供了响应的工具做互相转换,但是毕竟还要转换,而且不一定能转得多准确。
另外还有一个问题就是,毕竟是一个小众的非通用的语言,相应的工程化的工具链肯定是没有直接用原生的JavaScript
那么丰富的。
TypeScript
TypeScript
是另外一个思路,在完全兼容JavaScript
的情况下,增加了静态类型检查,所以说TypeScript
是JavaScript
的超集,也就是js代码直接复制粘贴到ts代码里理论上也能正常用。
为何要用TypeScript
相信大部分刚把自己项目语言由原生JavaScript
改成TypeScript
的同学多多少少还是有些抱怨的,明明能跑的代码,要加那么多的类型定义,编辑器还使劲报错,代码逻辑还得改,仅仅为了紧跟潮流么?
实际上,用TypeScript
还是有一些“爽点”的。
编辑器的提示相当方便
因为原生的JavaScript
是完全动态的,对象能成为各种你想让它成为的样子,而且是运行状态下面才能知道是什么样子,所以编写的时候编辑器根本没办法预测,也就做不到写Java
代码那种点
、Tab
、点
、Tab
的爽快感觉,用了TypeScript
之后那种感觉又回来了。
似乎能减少一部分错误
还是因为原生的JavaScript
过于自由了,对象里面随意增减属性,虽然用起来很方便,甚至还有一些骚操作,但是如果有一些错误的引用编写的时候是完全发现不了的,只有在特定情况运行的时候才发现,最后改起来可能更麻烦。使用TypeScript
后,可以在代码编写阶段就避免这些低级错误,从而对自己写的代码更自信。
所以现在基本上没有什么人用CoffeeScript
了,毕竟仅仅是创造了一种新语法,并没有解决什么实际的问题,作用并不是很大,而TypeScript
在前端项目工程化上的意义还是作用明显的,所以流行起来也不无道理。