why?
为啥使用typescript,它的好处是什么,什么时候需要用到它?
好了,typescript的介绍网上一搜就是一大堆,各种解释,肯定比我说的详细,各位可以自行Google。那就谈谈我的个人见解吧!
1、出于对一门新语言的好奇,“黑科技”什么的总用存在的意义(就像bridge.net就是c#版的javascript),更何况并不能算是”黑科技”,并且是c#之父编写的。
2、对于深受c#“毒害”的程序员,对javascript等弱类型语言表示深恶痛绝,但是工作中又不得不用到。
3、在构建大型js项目框架时候,随着项目的类越来越多,冗余代码十分多,自身的js功底不敢自诩,感觉某些地方分分钟都能掉进js的坑里面。
4、对于angular、jQuery、knockout等前端框架也是完美的支持,并且有了对应的声明文件直接使用,以及可以直接兼容现有项目代码。
start
1、工具
visual studio code,tsc编译器
2、开发环境
window7
先看效果图
typescript将编译生成原生的javascript代码
左边栏:[ctrl+b]相当于解决方案栏,vscode 支持将文件夹作为一个工作目录
中间栏:typescript 代码编辑区
右边栏:编译生成的目标js代码,默认生成在ts同级目录下
看效果还是不错吧,用类似c#的代码,编译生成对应的js代码。
语法什么的真的没有什么可纠结的,完全的面向对象,有编程基础的同学,相信在网上学习一下,用不了半个小时,基本上就搞定了,配合vscode强大的智能提示,极大的提高了编码速度。除此之外,vscode对js的支持体验也是极好的。
不过貌似编译这单单一个文件的速度不是很快(ps:我用的控制台直接编译,当然了vscode中配置一下之后,[ctrl+shift+b]也可以编译),就这一个文件也差不多花了快5秒钟了,对于大量待编译文件的编译性能有待验证;
总结:
总的来说ts还是十分不错的,配合vscode更体现其强大之处。当然了肯定会有不少人对它嗤之以鼻,一种语言的目的竟然是为了最终编译成另外一种语言,有什么意义(我之前就是这么想的),但是回过头来想,c#其实也是编译生成了IL,IL运行时又生成为机器码吗?Java不也是生成了字节码吗?难道你会去编写IL或者汇编,当然了也不排除大牛或者特殊要求咯,不过相同功能用高级语言实现肯定更快、更易维护。并且我想对于我们这些前端懂得皮毛的后端程序员来说,实在是福利,极大的降低了bug风险,提高编码体验,并且强类型的检查、类、接口、命名空间,继承和多态的实现也很好的锲合了面向对象编程。
就像前面提到了,typescript编译成了js,所以我们在更好的使用它的前提是,我们必须要有js的基础,相应的如果使用到某些前端js框架,我们也需要有相应的知识点,才能够体现ts的优点。
对于为什么不在visual studio中直接进行前端编码的原因,个人的见解是,web项目在代码层遵守mvc的思想,那么在实际操作和工具的选择上,个人也倾向于这种模式,后端代码习惯的vs这种IDE上进行,编码、编译十分顺手快速,前端代码在某些编辑器中例如vscode、sublimeText中却有更好的用户体验 和性能。
好了,以上就是个人对typescript的初体验和感想,如有不当之处敬请指正,共同进步。