CoffeeScript vs TypeScript

CoffeeScriptTypeScript都是需要编译成JavaScript的语言,毕竟浏览器不认识它们,但是这是两个出发点不一样的东西,可以短浅地梳理一下。

CoffeeScript

CoffeeScript是创造了一种新的语法,为了简化JavaScript的编写。可以认为是一种用于产生JavaScript的脚本。一般来说最终产生的代码比原生的JavaScript要短的,还有一些比较现代的语法糖,尤其是在ES6没有出来前,非常有效。

为何要用CoffeeScript

我没有真正使用过,但是看官网的例子,代码简洁清爽,很现代化,甚至没有大括号。完成相同的功能,普遍比原生的JavaScript要短,可以说是一种减少代码编写时间的工具,可以省下更多的时间喝咖啡。
但是CoffeeScript的语法看起来跟原生的JavaScript是不兼容的,所以在做一些代码搬运并缝合的工作的时候,似乎没有那么方便,虽然好像官网提供了响应的工具做互相转换,但是毕竟还要转换,而且不一定能转得多准确。
另外还有一个问题就是,毕竟是一个小众的非通用的语言,相应的工程化的工具链肯定是没有直接用原生的JavaScript那么丰富的。

TypeScript

TypeScript是另外一个思路,在完全兼容JavaScript的情况下,增加了静态类型检查,所以说TypeScriptJavaScript的超集,也就是js代码直接复制粘贴到ts代码里理论上也能正常用。

为何要用TypeScript

相信大部分刚把自己项目语言由原生JavaScript改成TypeScript的同学多多少少还是有些抱怨的,明明能跑的代码,要加那么多的类型定义,编辑器还使劲报错,代码逻辑还得改,仅仅为了紧跟潮流么?
实际上,用TypeScript还是有一些“爽点”的。

编辑器的提示相当方便
因为原生的JavaScript是完全动态的,对象能成为各种你想让它成为的样子,而且是运行状态下面才能知道是什么样子,所以编写的时候编辑器根本没办法预测,也就做不到写Java代码那种TabTab的爽快感觉,用了TypeScript之后那种感觉又回来了。

似乎能减少一部分错误
还是因为原生的JavaScript过于自由了,对象里面随意增减属性,虽然用起来很方便,甚至还有一些骚操作,但是如果有一些错误的引用编写的时候是完全发现不了的,只有在特定情况运行的时候才发现,最后改起来可能更麻烦。使用TypeScript后,可以在代码编写阶段就避免这些低级错误,从而对自己写的代码更自信。


所以现在基本上没有什么人用CoffeeScript了,毕竟仅仅是创造了一种新语法,并没有解决什么实际的问题,作用并不是很大,而TypeScript在前端项目工程化上的意义还是作用明显的,所以流行起来也不无道理。

原文地址:https://www.cnblogs.com/fwindpeak/p/14480276.html