ECMAScript6 VS TypeScript

        这篇文章的表头也许让你感受跟困惑,实在是没有什么意义。然而Typescript和ECMAScript 6(ES6)并非真正的两个彻底相同的东西,Typescript只是 ECMAScript 6 标准 的一个扩展的语法。javascript

        若是你真正使用过Typescript你会发现他实际上是javascript的超集, 这是一个很是简洁的描述 ,之因此称之为Typescript,正是Type一词的表述(强类型),可不单单是有一个Class就算强类型的。测试你也许仍是很是难以理解,这取决与你的数学和统计学的课程的好坏,也许你不知道什么叫作“超集”,那么下面我就展现一个“ 娃娃圆示意图 ”。java

        下面的示意图,描述的是咱们有一组数据A,和一数据B,B是A的超集,B包含了A的所有数据(你不能够说A就是B,B就是A)。web

        那么TypeScript和ECMAScript6的状况是同样的,若是你能明白上述道理的状况下:ionic

        其实这二者的差别并非很大,二者有不少共性,若是你熟悉Typescript,你很容易就可以写出ECMAScript6,反之亦然,可是若是你是一个初学者不明白他们俩的区别,建议你仍是应该从细节学习Typescript和ECMAscript6。学习

        咱们在开发中具体有哪些区别呢?下面咱们以IONIC2工程为例,测试

        若是你使用JS开发,你须要这样创建工程:code

        ionic start MyApp Blank --v2orm

        那么你的文件扩展名应该是*.js,若是你使用webstrom开发,别忘了更改javascript的编译配置,不然在开发中就会显示错误了ip

那么代码应该是:开发

        若是你使用的是Typescript,那么应该使用以下命令创建工程,确保你生成的文件都是*.ts,顺便说一句webstrom对于TS的支持很好,就是智能提醒有点慢。

        ionic start MyApp blank --v2 --ts

 

而其中rootPage: any = HomePage;和构造期间的依赖注入constructor(platform: Platform)是Typescript专有的。

具体其中的区别,咱们下面详细展现:

//EM6声明局部变量
let myThing = "hello";

//Typescript声明局部变量
let myThing: any = "hello";

那么针对于依赖注入就更不同了,我还曾经高混过,其实小明很笨!

//EM6
static get parameters() {
  return [[Platform], [Http]];
}
 
constructor(platform, http){
 
}
//Typescript

constructor(platform: Platform)

        其实Ionic2团队默认使用Typescript开发,这里的缘由也许只有你很正参与开发才会理解到的,因此若是你并未真正去了解他们,请不要发表意见。

        另外TypeScript装饰器(decorator)是基于ES7的装饰器提案实现的,因此你就发现它们俩的差别性还不小呢。

相关文章
相关标签/搜索