《前端之路》 - 初試 TypeScript(一)基礎資料型別
阿新 • • 發佈:2020-03-16
[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 中已經是非常常見的了。一句話概括就是,列舉是組織收集有關聯變數的一種方式。來,我們先舉個