1. 程式人生 > >《前端之路》 - 初試 TypeScript(一)基礎資料型別

《前端之路》 - 初試 TypeScript(一)基礎資料型別

[TOC] ### 一、先講講 TypeScript > 什麼是 typeScript ? ` typeScript 是 Javascript 的超集 ` 我們用一張圖來簡單介紹下 ts 和 js 清清楚楚明明白白的關係~ ![](https://img2020.cnblogs.com/blog/675289/202003/675289-20200312003252090-1948582131.jpg) > 為什麼會出現 typeScript 在說 `typeScript` 之前 ,我們先了解下 Javascript。 > JS裡面一切皆為物件,通過原型鏈來定義了系列不同型別資料的原生方法,然後給到了系列可以改變上下文的奇淫巧技,讓 JS 在使用起來的時候可以非常方便,不需要考慮過多,鏈上了咱們就瘋狂使用,這樣真的好麼?( 靈魂拷問 ) > > 而且在資料型別上,JS 也是沒有過多的限制,只要你定了這個變數且賦值了,那麼在該變數未被銷燬之前,你也可以瘋狂改變它的資料型別(基礎資料型別) > > 在有了幾年的開發經驗之後,特別是參與過大型專案開發的同學就會發現,對於初學者來講非常方便友好的特性,突然就變成了bug製造機。往往因為資料型別的判斷,JS 都給出了一系列的方法,而且都還不是特別準確,這讓一項嚴謹的開發者們變的有些不那麼嚴謹,那麼 `typeScript` 就出現了,讓程式設計這項本來就需要非常嚴謹的工作,迴歸了本質。 這或許就是 `typeScript` 出現的原因。 > 如何使用 `typeScript` 如何使用的話題,其實對於有過幾年的開發者來講,最簡單且最快速的學習方法就是開啟 他們的官方文件,[typeScript官方文件](https://www.typescriptlang.org/) 但是了,我在閱讀過程中查到了新的版本文件,閱讀起來人性化了很多,這裡也奉上地址 [typeScript官方文件-V2](https://www.typescriptlang.org/v2/docs/handbook/basic-types.html) > 下面我們就先針對 typeScript 的基礎知識來進行復習一下 ### 二、 typeScript 的資料型別 (Basic Types) > typeScript 的 Basic Types 包含了哪些呢? - Boolean (布林型別) - Number (數字型別) - String (字串型別) - Array (陣列型別) - Tuple (元組型別) - Enum (可列舉型別) - Any (任意型別) - Void (Void 型別) - Null & Undefined - Never (Never 型別) - Object (object 型別-非原始型別) ##### 2.1.1 Boolean (布林型別) > `TypeScript` 語法 ```typescript let isBool: Boolean = false; ``` > 被編譯成 `ES5` 的 `JavaScript` ```javascript "use strict"; var isBool = false; ``` ##### 2.1.2 Number (數字型別) > `TypeScript` 語法 ```typescript let nums: number = 123; ``` > 被編譯成 `ES5` 的 `JavaScript` ```javascript "use strict"; var nums = 123; ``` ##### 2.1.3 String (字串型別) > `TypeScript` 語法 ```typescript let str: string = "123"; ``` > 被編譯成 `ES5` 的 `JavaScript` ```javascript "use strict"; var str = "123"; ``` ##### 2.1.4 Array (陣列型別) > `TypeScript` 語法 ```typescript // 純陣列型別陣列表示方式 let arr0: number[] = [123, 123]; // 使用陣列泛型 let arr1: Array = [123, 345]; let arr2: Array = ["123", "345"]; let arr3: Array = [123, "345", { title: "123" }]; ``` > 被編譯成 `ES5` 的 `JavaScript` ```javascript "use strict"; // 純陣列型別陣列表示方式 var arr0 = [123, 123]; // 使用陣列泛型 var arr1 = [123, 345]; var arr2 = ["123", "345"]; var arr3 = [123, "345", { title: "123" }]; ``` ##### 2.1.5 Tuple (元組型別) 稍微解釋下什麼叫元組型別,元組型別本質上也屬於 陣列型別的一種,是陣列型別的子集,然後不同的一點在於,元組型別的資料長度是已知的。就是說我們為這裡每一位陣列中的資料定義型別。那這種型別就叫 ##元組型別## > `TypeScript` 語法 ```typescript let tupleArr: [number, string]; tupleArr = [123, "123"]; ``` > 被編譯成 `ES5` 的 `JavaScript` ```javascript "use strict"; var tupleArr; tupleArr = [123, "123"]; ``` ##### 2.1.6 Enum (可列舉型別) 稍微解釋下什麼叫可列舉型別,因為這對於大多數只瞭解 JS 的前端開發者來講是一個新的資料型別,但是 `可列舉型別` 在 c/c#/java 中已經是非常常見的了。一句話概括就是,列舉是組織收集有關聯變數的一種方式。來,我們先舉個