相对于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下面新建了一个示例类,如下代码所示:

 module Unit1{
//创建一个新的类
export class MyFirstClass{
//定义一个静态的方法用来显示日期
static DisplayDate(edit1:Core.StdCtrls.TEdit):void{
//实例化日期类型
var currentDate:Date=new Date();
//显示当前日期字符串
edit1.text=currentDate.toLocaleDateString();
}
} export class TForm1 extends Core.Forms.TForm{
btnDate: Core.StdCtrls.TButton;
edtDate: Core.StdCtrls.TEdit; btnDateClick(sender: Core.Classes.TComponent){
//调用模块Unit1下的MyFirstClass下的静态方法DisplayDate显示日期
Unit1.MyFirstClass.DisplayDate(this.edtDate);
} }
}

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试着玩一下这个简单的类代码。

05-11 20:35