typescript 視頻教程

貢獻者: 化不開的濃

TypeScript 是一種由微軟開發的自由和開源的編程語言,它是javaScript的一個超集,擴展了javaScript的語法。

1類型批注TypeScript 通過類型批注提供靜態類型以在編譯時啟動類型檢查。這是可選的水貔藻疽,而且可以被忽略而使用 javaS艘早祓胂cript 常規的動態類型。function Add(left: number, right: number):number { return left + right;}對于基本類型的批注是number, bool和string。而弱或動態類型的結構則是any類型。類型批注可以被導出到一個單獨的聲明文件以讓使用類型的已被編譯為javaScript的TypeScript腳本的類型信息可用。批注可以為一個現有的javaScript庫聲明,就像已經為Node.js和jQuery所做的那樣。當類型沒有給出時,TypeScript編譯器利用類型推斷以推斷類型。如果由于缺乏聲明,沒有類型可以被推斷出,那么它就會默認為是動態的any類型。

2例接下來我們在 TypeScript 文件 type.ts 中創建一個簡單的 area() 函數:

3接下來,修改index.html的 js 文件為type.js然后編譯 TypeScript 文件:tsc type.ts。瀏覽器刷新 index.html 文件,輸出結果如下:

4接口接下來,我們通過一個接口來擴展以上實例,創建一個 interface.ts 文件,修改index.html的 js 文件為interface.js。interface.js 文件代碼如下:

5接口可以作為一個類型批注。編譯以上代碼tsc interface.ts不會出現錯誤,但是如果你在以上代碼后面添加缺失 name 參數的語句則在編譯時會報錯:

6重新編譯,錯誤信息如下:

7瀏覽器訪問,輸出結果如下:

8箭頭函數表達式(lambda表達式)lambda表達式()=>{something}或()=>something相當于js中的函數,它的好處是可以自動將函數中的this附加到上下文中。嘗試執行以下:

9實例中的 this.name 是一個空值:

10接下來我們使用 TypeScript 的箭頭函數。把function()替換為() =>:

11輸出結果如下:

12在以上實例編譯后端 js 文件中,我們可以看到一行var _this = this;,_this在 setTimeout() 的回調函數引用了 name 屬性。

13類TypeScript支持集成了可選的類型批注支持的ECMAScript 6的類。接下來我們創建一個類文件 class.ts,代碼如下:

14以上 Shape 類中有兩個屬性 area 和 color,一個構造器 (c藝皺麾酪 tructor()), 一個方法是 shout泠賈高框out() 。構造器中參數(name, width 和 height) 的作用域是局部變量,所以編譯以上文件,在瀏覽器輸出錯誤結果如下所示:

15接下來,我們添加 public 和 private 訪問修飾符。Public 成員可以在任何地方訪問, private 成員只允許在類中訪問。接下來我們修改以上代碼,將 color 聲明為 private,構造函數的參數 name 聲明為 public:

16由于咯悝灘鏃 color 成員變量設置了 private,所以會出現以下信息:class.ts(24,41): The property 'color' 頰俄巋 does not exist on value of type 'Shape'

17繼承最后,我們可以繼承一個已存在的類并創建一個派生類,繼承使用關鍵字extends。接下來我們在 class.ts 文件末尾添加以下代碼,如下所示:

18派生類 Shape3D 說明:Shape3D 繼承了 Shap娣定撰鈉e 類, 也繼承了 Shape 類的 colo雞墮櫻隕r 屬性。構造函數中,super 方法調用了基類 Shape 的構造函數 Shape,傳遞了參數 name, width, 和 height 值。 繼承允許我們復用 Shape 類的代碼,所以我們可以通過繼承 area 屬性來計算 this.volume。Shape3D 的 shoutout() 方法重寫基類的實現。superShout() 方法通過使用 super 關鍵字直接返回了基類的 shoutout() 方法。其他的代碼我們可以通過自己的需求來完成自己想要的功能。

1 2 3 4 5
淘宝天猫优惠券群能赚钱吗 湖北快3走势图 股票为什么会有涨跌停 云南快乐十分选号软件 浙江体彩6+1历史开奖结果 模拟炒股大赛平台 江苏11选5开奖 广西快3单期在线计划 舒泰神股票 单双各10码王中王中特 20选5精准准专家分析