玩转TypeScript(1) --定义简单的类
相对于JavaScript来说,TypeScript增强了强制类型,同时添加了一系列的面向对象的特性,包含:静态类型(Static typing)、类(Classes)、接口(Interfaces)、模块(Modules),它只是一门设计时语言,也就是说在运行时依然是JavaScript引擎,TypeScript只是确保在设计时可以具有现代面向对象的语言的功能。
通过一个示例来看一下在TypeScript中定义类和静态方法,以WisOne IDE为例,打开WisOne IDE,在窗口上拖一个Button按钮。单击左侧项目视图的“Design“面板,在属性面板中更改其name属性为btnButton,Caption属性值为“显示当前日期“,再拖一个TEdit控件,设置其Name属性为EdtDate,Text属性为空。双击按钮进入到代码编辑器,在编辑器中可以看到Form本身是做为一个类存在,为了演示类的创建,这里在unit1下面新建了一个示例类,如下代码所示:
1 module Unit1{ 2 //创建一个新的类 3 export class MyFirstClass{ 4 //定义一个静态的方法用来显示日期 5 static DisplayDate(edit1:Core.StdCtrls.TEdit):void{ 6 //实例化日期类型 7 var currentDate:Date=new Date(); 8 //显示当前日期字符串 9 edit1.text=currentDate.toLocaleDateString(); 10 } 11 } 12 13 14 export class TForm1 extends Core.Forms.TForm{ 15 btnDate: Core.StdCtrls.TButton; 16 edtDate: Core.StdCtrls.TEdit; 17 18 btnDateClick(sender: Core.Classes.TComponent){ 19 //调用模块Unit1下的MyFirstClass下的静态方法DisplayDate显示日期 20 Unit1.MyFirstClass.DisplayDate(this.edtDate); 21 } 22 23 } 24 }
TypeScript中有static关键字表明方法是一个静态方法,也就是说DisplayDate可以不用使用new进行实例化就能直接调用熟悉C#语言的会很熟悉这样的语法,在名为Unit1的Module下面,WisOne IDE自动生成了一个名为TForm1的类,我在这里定义了一个名为MyFirstClass的类,也就是说现在有2个类在Module下面,在btnDate的单击事件处理代码中,通过调用MyFirstClass类中的静态方法,就显示了当前的日期。在WisOne IDE中的运行效果如下图所示:
Module、Class以及static这些显示的面向对象的关键字,让TypeScript的代码更加简洁,容易架构。而且对类型的支持这足以让代码容易给别人接手,在我看来,确实是让人心动。
有兴趣的朋友可以进入http://www.wisone.com/ide 试着玩一下这个简单的类代码。