Typscript与Javascript的对比
文章已阅读次
Typescript(文件后缀名.ts)是Javascript(文件后缀名.js)的超集,可以在ts中使用原生js语法,即向下兼容。
Typescript简称“TS”,Javascript简称“JS”
TS引入了 js中没有的“类”概念
TS中引入了模块的概念,可以把声明、数据、函数和类封装在模块中。
TS没有重载概念,TypeScript可使用重载
TS对比js基础类型上,增加了 void/never/any/元组/枚举/以及一些高级类型
TS需要静态编译,它提供了强类型与更多面向对象的内容。
TS最终仍要编译为弱类型的js文件,基于对象的原生的js,再运行。故ts相较java/C#这样天生面向对象语言是有区别和局限的
TS是由微软牵头主导的,主要来自C#
TS是一个应用程序级的JS开发语言,可以开发或者说更适合开发大型应用。
TS是的超集,可以编译成纯JS这个和我们CSS中的Less或者Sass是很像的,
我们用更好的代码编写方式来进行编写,最后编译成原生的JS语言。
TS跨浏览器、跨操作系统、跨主机、且开源。由于最后编译成了JavaScript所以只要能运行JS的地方,都可以运行我们写的程序,这个设置在node.js里(TypeScript始于JavaScript,终于JavaScript。遵循JavaScript的语法和语义)
TS可以重用JS代码,调用流行的JS库。
TS提供了类、模块和接口,更易于构建组件和维护。
JS和TS的区别
JS | TS |
---|---|
运行时类型 | 静态类型 |
程序运行时进行类型检查 | 编译期进行类型检查 |
开发环境无法提供给帮助 | 开发环境能提供丰富的信息 |
需要进行大量测试,消耗时间覆盖测试场景, | 大部分检查有语言自身完成 |
才能保证代码的覆盖率 | |
class扩展较弱 | 拥有很强class扩展 |
仅支持版本等级较高浏览器 | 支持所有的浏览器 |
无访问控制权限 | 拥有完整的成员访问控制权限 |
无高级特性 | 静态成员等特性 |
系统设计能力
JS | TS |
---|---|
无 | 完备的系统设计能力 |
无 | 拥有interface接口规范 |
无 | 拥有abstrace抽象类 |