作家
登录

Angular为什么选择TypeScript?

作者: 来源: 2017-08-31 11:38:48 阅读 我要评论

jQuery.ajax(url, settings) 

我们独一可以肯定的是该函数有两个参数。我们可以猜出这些类型。也许第一个是一个字符串,第二个是一个设备对象。但这仅仅是猜测,我们可能会错。我们不知道什么选项进入设置对象(他们的名字和类型),或者这个函数返回什么。

我们没有办法在不查看源码或者文档的情况下调用此函数。检查源代码不是一个好的选择 - 功能和类的要点是可以或许在不知道它们若何实现的情况下应用它们。换句话说,我们应当依附他们的接口,而不是依附它们的实现。我们可以检查文档,但它不是最好的开辟人员体验 - 它须要更多的时光,文档往往是过时的。

所以固然很轻易攫取jQuery.ajax(url,settings),要真正懂得若何调用这个函数,我们须要攫取它的源码或其文档。

如今,将其邮攀类型版本比较

  1. ajax(url: string, settings?: JQueryAjaxSettings): JQueryXHR;  
  2.  
  3. interface JQueryAjaxSettings {  
  4.   async?: boolean;  
  5.   cache?: boolean;  
  6.   contentType?: any;  
  7.   headers?: { [key: string]: any; };  
  8.   //...  
  9. }  
  10.  
  11. interface JQueryXHR {  
  12.   responseJSON?: any; //...  

它给了我们更多的信息。

  • 这个函数的第一个参数是一个字符串。
  • settings参数是可选的。我们可以看到可以传递给函数的所有选项,不仅仅是它们的名字,还包含它们的类型。
  • 该函数返回一个JQueryXHR对象,我们可以看到它的属性和函数。

与其他编译为JavaScript的说话比拟,TypeScript的类型是可选的,jQuery.ajax(url, settings)仍然是有效的typescript。所以并不长短开即关,TypeScript更多的是加强。如不雅发明代码在攫取和懂得时没有类型注释是眇乎小哉的,请不要应用它们。只有在增长价值的情况下应用他们。

TypeScript是否限制表达?

TypeScript有很好的对象

  1. const PersonRecord = Record({name:null, age:null});  
  2.  
  3. function createPerson(name, age) {  
  4.   return new PersonRecord({name, age});  
  5. }  
  6.  
  7. const p = createPerson("Jim", 44);  
  8.  
  9. expect(p.name).toEqual("Jim"); 

我们若何肯定记录的类型?让我们来定义一个Person接口。

  1. interface Person { name: string, age: number }; 

如不雅我们测验测验履行以下操作:

  1. function createPerson(name: string, age: number): Person {  
  2.   return new PersonRecord({name, age});  

TypeScript编译器就会警告,因为编译器不知道PersonRecord和Person类型兼容。一些有函数式编程经验的人会说:“TypeScript只有依附类型!”。然则不是如许的。TypeScript的类型体系不是最先辈的。但它的目标是不合的。这不是证实法度榜样是100%精确的。它更多的是供给给你更多的提示信息和启用更强大年夜的对象。所以当类型体系不敷灵活时,可以采取快捷方法。所以我们可以转换创建的记录,经由过程下面如许:

  1. function createPerson(name: string, age: number): Person {  

      推荐阅读

      工作十年的程序员,却拿着毕业三年的工资,再不开窍就真晚了!

    小韩是一家小公司的软件法度榜样员,而十年后他还在那家公司,依然是一名通俗的法度榜样员。算起来,他工作也有十多年了,然则,他却告诉我,他的工资已经好几年没有涨过了。有大年夜情况>>>详细阅读


    本文标题:Angular为什么选择TypeScript?

    地址:http://www.17bianji.com/lsqh/37050.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)