這次帶給大家一定要了解的TypeScript,使用TypeScript的注意事項有哪些,以下就是實戰案例,一起來看一下。
Angular2對比於Angular1就像是Java與Javascript,正因為變化巨大,用AngularJS來代表1.x版本,而Angular代表2.x、4.x、5. x等後續版本。參考《Angular權威教學》記錄Angular家族史,本文簡介一下TypeScript。
原文連結
TypeScript
Angular是用一種類似JavaScript的語言--TypeScript建構的。
TypeScript不是一門全新的語言,而是ES6的超集。所有ES6程式碼都是完全有效且可編譯的TypeScript程式碼。
typescript
#TypeScript相對於ES5有五大改善:
#類型
類別
註解
模組匯入
語言工具包
類型
TypeScript的類型是可選的。
不過,類型檢查的好處在於:
1 有助於程式碼的編寫,在編譯期預防bug
2 有助於程式碼的閱讀,清晰的表達作者意圖
字符字串
字串包含文本,宣告為string類型:
var name: string = 'hello world!';
數字
#無論整數或浮點,在TypeScript中,所有資料都是以浮點數表示:
var age: number = 25;
陣列
陣列用Array類型表示,因為陣列是一組相同資料類型的集合,所以還需要為陣列中的項目指定一個類型
var arr: Array<string> = ['component', 'provider', 'pipe']; 或var arr: string[] = ['component', 'provider', 'pipe'];var arr: Array<number> = [1, 2, 3, 4, 5, 6]; 或var arr: number[] = [1, 2, 3, 4, 5, 6];
枚舉
枚舉是一組可命名數值的集合,
enum Man {age, iq, eq}; var man: Man = Man.age;
任意類型
如果沒有為變數指定類型,那麼它的默認類型是any,any類型的變數能夠接收任意類型的資料
var something: any = 'hello world'; something = 1; something = [1, 2, 3];
"無"類型
void表示不期望那裡有類型,通常用作函數的傳回值,表示沒有任何回傳值
function setName(name: string): void { this.name = name; }
void型別也是一種合法的any型別
類別
es5中採用的是基於原型的物件導向設計,不使用類,而是依賴原型
在es6中可以使用class表示內建的類,如:
class Point {}
類可以包含屬性、方法以及建構函數
屬性
屬性定義了類別實例物件的數據,如:Point類別中可以有x、y屬性
類別中的每個屬性都可以包含一個可所選的類型,如:
class Point { x: number; y: number; }
方法
方法是執行在類別物件實例上下文中的函數,在呼叫物件的方法前,要有這個物件的實例
class Point { x: number; y: number; moveTo(x: number, y: number) { this.x = x; this.y = y; console.log(this.x, this.y); } }var p: Point = new Point(); p.x = 1; p.y = 1; p.moveTo(10,10);
建構函數
建構子是當類別進行實例化時執行的特殊函數,通常會在建構子中對新物件進行初始化
建構子必須命名為constructor,因為建構子在類被實例化時調用,所以可以有輸入參數,但不能有返回值
當類別沒有明確定義建構函數時,將自動建立一個無參構造函數
class Point { }var p = new Point(); 等价于class Point { constructor() { } }var p = new Point();
帶參構造函數
class Point { x: number; y: number; constructor(x: number, y: number) { this.x = x; this.y = y; } moveTo(x: number, y: number) { this.x = x; this.y = y; console.log(this.x, this.y); } } var p: Point = new Point(1,1); p.moveTo(10,10);
繼承
物件導向的另一個重要特性就是繼承,繼承表示子類別能夠從父類別得到它的行為,然後可以在這個子類別中重寫、修改或新增行為
TypeScript完成支援繼承特性,用extends關鍵字實作
建立父類別
class Parent { name: string; constructor(name: string){ this.name = name; } say() { console.log('NAME:' + this.name); } }
子類別
class Child { age: number; constructor(name: string, age: number) { super(name); this.age = age; } say() { super.say(); console.log(' AGE:' + this.age); } }var n: Child = new Child('vist', 25); n.say();
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是一定要了解的TypeScript的詳細內容。更多資訊請關注PHP中文網其他相關文章!