天天看點

TypeScript(04): 基礎類型

TypeScript 包含的資料類型如下表:

注意:TypeScript 和 JavaScript 沒有整數類型。

TypeScript(04): 基礎類型

一、Any 類型

任意值是 TypeScript 針對程式設計時類型不明确的變量使用的一種資料類型,它常用于以下三種情況。

1、變量的值會動态改變時,比如來自使用者的輸入,任意值類型可以讓這些變量跳過編譯階段的類型檢查,示例代碼如下:

let x: any = 1;    // 數字類型
x = 'I am who I am';    // 字元串類型
x = false;    // 布爾類型      

2、改寫現有代碼時,任意值允許在編譯時可選擇地包含或移除類型檢查,示例代碼如下:

let x: any = 4;
x.ifItExists();    // 正确,ifItExists方法在運作時可能存在,但這裡并不會檢查
x.toFixed();    // 正确      

3、定義存儲各種類型資料的數組時,示例代碼如下:

let arrayList: any[] = [1, false, 'fine'];
arrayList[1] = 100;      

二、Null 和 Undefined

1、null

在 JavaScript 中 null 表示 "什麼都沒有"。

null是一個隻有一個值的特殊類型。表示一個空對象引用。

用 typeof 檢測 null 傳回是 object。

2、undefined

在 JavaScript 中, undefined 是一個沒有設定值的變量。typeof 一個沒有值的變量會傳回 undefined。Null 和 Undefined 是其他任何類型(包括 void)的子類型,可以指派給其它類型,如數字類型,此時,指派後的類型會變成 null 或 undefined。

而在TypeScript中啟用嚴格的空校驗(--strictNullChecks)特性,就可以使得null 和 undefined 隻能被指派給 void 或本身對應的類型,示例代碼如下:

// 啟用 --strictNullChecks
let x: number;
x = 1; // 運作正确
x = undefined;    // 運作錯誤
x = null;    // 運作錯誤      

上面的例子中變量 x 隻能是數字類型。如果一個類型可能出現 null 或 undefined, 可以用 | 來支援多種類型,示例代碼如下:

// 啟用 --strictNullChecks
let x: number | null | undefined;
x = 1; // 運作正确
x = undefined;    // 運作正确
x = null;    // 運作正确      

三、never 類型

let x: never;
let y: number;

// 運作錯誤,數字類型不能轉為 never 類型
x = 123;

// 運作正确,never 類型可以指派給 never類型
x = (()=>{ throw new Error('exception')})();

// 運作正确,never 類型可以指派給 數字類型
y = (()=>{ throw new Error('exception')})();

// 傳回值為 never 的函數可以是抛出異常的情況
function error(message: string): never {
    throw new Error(message);
}

// 傳回值為 never 的函數可以是無法被執行到的終止點的情況
function loop(): never {
    while (true) {}
}      

繼續閱讀