相對於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 試着玩一下這個簡單的類代碼。