ts与js最大的区别是什么呢?
一、程序不同:
ts需要静态编译,它提供了强类型与更多面向对象的内容。TypeScript是JavaScript的超集,可以编译成纯JavaScript。这个和我们CSS离的Less或者Sass是很像的,用更好的代码编写方式来进行编写,最后还是友好生成原生的JavaScript语言。
二、运行不同:
ts最终仍要编译为弱类型的js文件,基于对象的原生的js在运行。故ts相较java/C#这样天生面向对象语言是有区别和局限的,TypeScript是一个应用程序级的JavaScript开发语言。这也表示TypeScript比较牛逼,可以开发大型应用,或者说更适合开发大型应用。
主要功能
TypeScript的作者是安德斯·海尔斯伯格,C#的首席架构师,它是开源和跨平台的编程语言。它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。
TypeScript扩展了JavaScript的语法,所以任何现有的JavaScript程序可以运行在TypeScript环境中。TypeScript是为大型应用的开发而设计,并且可以编译为JavaScript。
什么是ts 编程
什么是ts
ts是js的超集,意味着js本身的语法在ts里面也能跑的通。ts一方面是对js加上了很多条条框框的限制,另一方面是拓展了js的一些能力,就像es6提供了那么多神奇的语法糖一样。只要按照一定的规则去书写js,就能享受到ts带来的好处。
当然因为现在的ts足够强大,并且有自家的vscode保驾护航,才方便了我们这些过去想都不(lan)敢(de)想的苦逼程序员。
js改造成ts的工作量很大程度取决于你想对自己的代码限制的有多细致,描述的有多完善。最简单的就像上面说的,改个拓展名就行了(当然很大程度上可能会通过不了各种静态检查)。如果你写的越多,用你代码的同志就越大可能喜欢你写的东西。
TypeScript前景怎么样?
在回答这个问题之前,我们首先要搞清楚,typescript是什么?它有什么好处,能给我们带来什么收益?
什么是typescript?
它是由微软公司开发的一套脚本语言,作者认为它是普通javaScript的SuperSet。它并不能直接运行在浏览器或者服务器上,所以呢,在运行之前需要经过编译时的处理。官网说编译后可以运行在任何平台、任何服务器、任何系统上。它也是开源的,大家可以到某著名代码托管平台查看源码,但是个人理解这个开源最终解释权还是微软公司来定。
typescript的编译
我相信每一个学习ts的同学对它的第一印象绝对是它能做类型检查,比如对一些变量,函数的参数以及返回值等等做类型检查,这些检查都是在编译时做的,当你在使用编译器转换成js的过程中就可以检查出来很多错误,这样可以减少出现bug的几率,提高我们代码的质量。ts作者已经为我们提供了很好用的cli,我们可以根据自己的需要定义tsconfig。
普通的js编译通常会有以下几个步骤:
扫描分析-AST-转换-目标代码
ts在这个中间加入一步代码类型检查:
扫描分析-AST-类型检查-转换-目标代码
在你开发ts的时候,cli可以实时提示代码问题
注:ts不仅仅可以转化成js,也可以转换成其他语言
typescript的优点
首先,个人理解类型检查是它最大的特点,也可以说是它最大的优点,所有的配套设施都是围绕着它来做的。
其次,ts提供了诸如接口、抽象、泛型、private、protected、public等在其他语言诸如java,c常见的方式,这些东西都是原生js不具有的,所以开发思想需要有所转变。
第三点,ts提供了最新的js语法支持
第四点,angular2就是用ts开发,如果你的团队选择它作为技术栈,那么ts就是你的基础,学会了ts就很自然的可以开发angular
typescript的活跃度
ts语言本身大概几个月发布一个新版本,目前90%的知名的开源库都提供类型定义文件,自己也能很方便的发布ts开源代码。目前bat等一线互联网公司也都或多或少的在使用typescript,整体活跃度还是不错的,所以前景还是明朗的。
个人理解,ts更适合通用性很强的代码,不适合迭代速度很快的业务代码。另外对人员素质要求也变的更高,选型应该量力而行。
Google微软都用了,而且兼容JS,你还怕啥?
学吧,花不了多少时间也不难,多一门技术栈,也提高自身价值,更有利于你将来拓展学习其他静态语言
看你从事哪个领域了