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

转职成为TypeScript程序员的参考手册(三)

时间:2016-02-25 18:29:13      阅读:450      评论:0      收藏:0      [点我收藏+]

标签:

模块、类型、接口

TypeScript的模块用于代码组织,类似C#的namespace。一个模块可以包含多个类和接口。可以将类和接口私有化或者导出,导出的意思就是公开,让其他模块可以访问他们。

TypeScript的class和C#的class意义相同。实际上TypeScript的一个亮点就是他隐藏了JavaScript的原型设计,而是采用了更流行的基于类型的面向对象方式。你可以扩展其他的class,实现多个接口,添加构造函数,公开属性和方法。这些都和c#的class很相似。

属性和方法可以使用public 或private访问修饰符 修饰。当在构造函数的参数上使用访问修饰符的时候,他们会自动为该类型添加同名的属性。请非常小心这个语法,这和很多语言都不同

技术分享

如图中Point的构造函数参数x,y 使用了public 访问修饰符,所以会自动生成Point的成员变量x和y,这是TypeScript的特有语法。

图中的export 关键字使类和接口在模块外部可见。实现接口使用implements关键字,继承类使用extends关键字,这点和C#直接用一个冒号表达不同。

技术分享

当你扩展一个类时,用super关键字调用基类的方法。用this关键字来调用当前类的属性和方法。重写基类的方法是可选的。构造函数必须要调用基类的构造函数,编译器会提醒你的。

模块名称包含点,一个模块可以定义在多个文件中。模块的名字别太长,访问的时候打字会比较累。下图是一个比较累的例子

技术分享

函数(或者叫功能)的参数

TypeScript的函数参数拥有丰富的特性:可选参数、默认参数、不定参数。

有一些和其他语言的设计不太相同。下面将一一说明。

虽然在设计上,这些参数特性都不是必要的,但是TypeScript的这些地方都有些特殊性,你得了解一下,以备看懂。

可选参数的设计和C#基本一致,符号用? 表示可选参数,可选参数必须出现在必选参数之后。

技术分享

默认参数只要在定义时给附上值就行了,并且和c#不同,TypeScript的默认参数不需要是常量,运行时可解释即可,后文会有说明

技术分享

下图是特殊的默认参数

技术分享

不定参数可以指定任意数量,可以为零,这个设计也和c#类似,只是要添加三个点。

技术分享

下面就是不定参数的一个典型使用场景

技术分享

函数重载

Javascript是不允许重名函数的,TypeScript实现的重载和c#有很大的不同。

TypeScript的重载是要把所有的函数签名写出来,写一份实现,并且最后一个函数签名要能包含上面所有的函数签名。

如下图:

技术分享

和C#三个重载的函数就拥有三个函数体不同,TypeScript的重载其实全是 overloadedMethod(input:any)这最后一个签名的实现,上面的两个只是两个兼容的签名。但是配合可选参数还是能够表现出和c#的函数重载类似的调用方式。函数编写方式免不了要写很多的if了。

转职成为TypeScript程序员的参考手册(三)

标签:

原文地址:http://www.cnblogs.com/crazylights/p/5217975.html

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