TypeScript更好的JavaScript.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TypeScript更好的JavaScript

TypeScript:更好的JavaScript 目录 作为编程语言的TypeScript 2 TypeScript特性简介 2 对象模型的扩展 3 声明语义学 3 数据语义学 3 函数语义学 4 class和继承语义学 6 代码组织和重构 8 小结 8 标签:TypeScript,编程语言,JavaScrip 作为编程语言的TypeScript 关于TypeScript,首先要认识的一点就是:它是Anders Hejlsberg的作品。Anders是第一流的编程语言设计师,也是第一流的编译器实现者。作为Object Pascal和C#之父,Anders这次仍然采用了此前的做法:他设计了一种新的语言,并实现了这种语言的编译器,来改进一种已有的语言。但这次又和此前有所不同,此前无论是Object Pascal还是C#,编译的目标代码都是机器码,而TypeScript的目标代码则是JavaScript。 当然,如果把浏览器看作是虚拟机,而JavaScript看作是在这种虚拟机上运行的目标代码也无不可。总而言之,使用TypeScript这种语言撰写的源代码需要经过TypeScript编译器的编译,而产生的目标代码是标准的JavaScript。但这还不是TypeScript在语言设计层面上的特别之处,特别之处有两点。 TypeScript支持on-the-fly编译,即写一句TypeScript就可以立即得到对应的JavaScript代码,这个特性和CoffeeScript类似。但它比CoffeeScript支持更强的上下文推导,不需要完整的语句写完,就可以生成对应的、不完整的JavaScript代码。 TypeScript是JavaScript的超集(superset),“任何合法的JavaScript都是合法的TypeScript。”这种设计很明显是借鉴了C++对于C做扩充时采用的做法,它兼容已有的JavaScript代码的决定给很多JavaScript程序员向TypeScript转型时铺就坚实的第一步——他们可以从自己已有的代码出发,通过一点一点的改动来体会到TypeScript带来的好处,同时,时刻保留说“这样就够了”,然后停止的权利。直到掌握了比较全面的TypeScript技术以后,才从一开始就采用TypeScript来撰写代码,而只取用编译结果。实际上,“任何合法的JavaScript都是合法的TypeScript”这种说法并不准确,准确的说法是“任何合法的ECMAScript 6都是合法的TypeScript”。当然,ECMAScript 6还是一个正在修订的语言规范,而TypeScript在现阶段生成的任何目标代码,涉及可能会引起ECMAScript 6的新特性的,都采用了向下兼容的ECMAScript 5规范作为准则。但对于各个浏览器自行对JavaScript做的那部分扩充,TypeScript不保证予以支持。 TypeScript特性简介 前面已说过,TypeScript的设计目标是作为JavaScript或者说ECMAScript 6的超集。换句话说,如同C++的初始目标是作为“更好的C”一样,TypeScript也可以看作是“更好的JavaScript”,那么好在哪里呢?其实用C++和C的关系来做类比,还是很恰当的。TypeScript充分利用了JavaScript原有的对象模型并在此基础上做了扩充,添加了较为严格的类型检查机制,添加了模块支持和API导出的能力。比起JavaScript,TypeScript提供了更多在语言层面上的支持,使得程序员能够以更加标准化的语法来表达语义上的约束,从而降低了程序出错的机率;TypeScript也使得代码组织和复用变得更加有序,使得开发大型Web应用有了一套标准方法。 对象模型的扩展 JavaScript支持极为广泛的对象模型,除了null和undefined以外,几乎所有的其他实体都可以视为对象,即使是数值、字符串和布尔型亦可以隐式使用其对应的包装器而直接作为对象用于一般场合。函数和数组这样在其他的编程语言中不被视为对象的实体,在JavaScript亦视为“一等对象”(first-class object),除了利用实体本身的场合,例如使用数值索引或调用函数体以外,还可以作为普通的对象拿来添加属性和方法。JavaScript对象支持在任意时刻动态添加属性和方法,并且支持修改和扩充内建对象。一句话,JavaScript提供了大量进行对象操作的基础设施(facilities)和基本工具(utilities),正是这些内容构成了JavaScript丰富而灵活的对象模型。TypeScript主要从两个方面对JavaScript对象模型进行扩展:一是在核心语

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档