首頁 > web前端 > js教程 > 主體

一定要了解的TypeScript

php中世界最好的语言
發布: 2018-03-13 16:15:40
原創
2092 人瀏覽過

這次帶給大家一定要了解的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

#TypeScript相對於ES5有五大改善:

#類型

類別

註解

模組匯入

語言工具包

類型

TypeScript的類型是可選的。
不過,類型檢查的好處在於:
1 有助於程式碼的編寫,在編譯期預防bug
2 有助於程式碼的閱讀,清晰的表達作者意圖

字符字串

字串包含文本,宣告為string類型:

var name: string = 'hello world!';
登入後複製

數字

#無論整數或浮點,在TypeScript中,所有資料都是以浮點數表示:

var age: number = 25;
登入後複製

陣列

陣列用Array類型表示,因為陣列是一組相同資料類型的集合,所以還需要為陣列中的項目指定一個類型

var arr: Array<string> = [&#39;component&#39;, &#39;provider&#39;, &#39;pipe&#39;];
    或var arr: string[] = [&#39;component&#39;, &#39;provider&#39;, &#39;pipe&#39;];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 = &#39;hello world&#39;;
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(&#39;NAME:&#39; + this.name);
    }
}
登入後複製

子類別

class Child {
    age: number;    constructor(name: string, age: number) {        super(name);        this.age = age;
    }
    say() {        super.say();        console.log(&#39; AGE:&#39; + this.age);
    }
}var n: Child = new Child(&#39;vist&#39;, 25);
n.say();
登入後複製

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

canvas怎麼做出黑色背景的青色煙火

用Fetch進行http要求

以上是一定要了解的TypeScript的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板