码迷,mamicode.com
首页 > 其他好文 > 详细

Angular基础(三) TypeScript

时间:2017-08-19 00:45:07      阅读:285      评论:0      收藏:0      [点我收藏+]

标签:let   https   模仿   否则   16px   table   roi   1.2   模板   

 

技术分享

 

 

一、模仿Reddit

a) 运行ng new –ng4angular-reddit创建应用,从随书代码中复制样式文件,新建组件app-root,代码为:

技术分享

界面可以看到了:

技术分享

b) 对于界面输入的数据,获取的方式有点特别,使用了#newlink这样的语法,newlink是一个对象,现在代表就是所在的input这个DOM元素。

技术分享

将对象作为参数传递给addArticle方法,在对应的ts代码中,可以获取newlink.value。newlink是HTMLInputElement类型。

技术分享

c)关于参数的绑定,在html文件使用{{***}}这样的语法,ts代码中对应的参数如果发生变化会及时反映到界面。

技术分享

接下来是像这样的文章列表,要添加Article组件,组件的selector为app-article,之后可以在主页面使用<app-article>了。Article组件负责显示每一篇文章,数据要从外部传递,以满足复用的要求,@Input()article:Article定义了输入参数article。

技术分享

 

在主界面显示文章列表时,用*ngFor遍历,使用[article]=”**”可以向组件传递参数。

技术分享

最后的效果为:

技术分享

点击up\down响应非常快,而且无刷新,但还不清楚背后的机制。

 

二、TypeScript

a)TypeScript是ES6(ECMAScript6)的超集,ES6相对于ES5增加了类、模块等特性,TypeScript则又在ES6的基础上增加了强类型的机制。现在支持ES6新标准的浏览器还比较少,ts代码会首先被编译成ES5代码。TypeScript由微软发起并开源,现在Google也在维护。TypeScript具有很多新特性,例如类型、类、装饰器、导入等。

b)Types,强类型有助于在编译的时候及早发现代码错误,并且强类型代码具有更好的可读性。TypeScript代码的写法,与C#在很多地方是相反的:

技术分享

类型有string、number、boolean、Array<>、enum、any,对于方法的返回值还有void。

c)Classes、Properties、Methods,在ES5中有面向对象的概念,但没有类,ES6为JS内置了类,声明语法为classTable {},类内可以声明具有类型的属性,属性使用时要用this,否则会提示找不到,方法也可以不指定返回类型(包括void),这样的方法可以返回任意类型的结果。

d)Constructors,构造函数见多了,但TypeScript的构造函数名称必须为constructor,构造函数可以有参数,但不能返回值,而且构造函数也不能有重载(ES6可以有)。

e)Inheritance

技术分享

Car继承了Mechaine,使用extends关键字,通过super初始化父类或调用父类方法。父类的run方法就算不写修饰符也可以被派生类使用,猜想TypeScript中方法的默认修饰符是protected。

f)箭头函数Fat ArrowFunctions,不知道写个Fat是什么意思。与C#的lambda、匿名函数一个意思吧,在箭头函数中,this的作用域在函数内部。

g)字符串模板

技术分享

TypeScript的字符串模板使用方法,感觉没有string.Format方便的样子,还需要首先定义参数,这里使用倒引号。

 

学习资料:The Complete Book on Angular by Nate Murray, Felipe Coury, AriLerner , Carlos Taborda

 

 

 

Angular基础(三) TypeScript

标签:let   https   模仿   否则   16px   table   roi   1.2   模板   

原文地址:http://www.cnblogs.com/zhixin9001/p/7392574.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!