TypeScript(二)----關於null、Undefined、never 類型


1 null 和undefined 

null是一個只有一個值的特殊類型。表示一個空對象引用。用 typeof 檢測 null 返回是object。

typeof 一個沒有值的變量會返回 undefined

ull 和 Undefined 是其他任何類型(包括 void)的子類型,可以賦值給其它類型,如數字類型,此時,賦值后的類型會變成 null 或 undefined。

在TypeScript中啟用嚴格的空校驗(--strictNullChecks)特性,使得null 和 undefined 只能被賦值給 void 或本身對應的類型

錯誤示范:

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

 

正確示范:

// 啟用 --strictNullChecks
let x: number | null | undefined; //本身對應的類型
x = 1; // 運行正確
x = undefined;    // 運行正確
x = null;    // 運行正確

 

2 never 類型

never 是其它類型(包括 null 和 undefined)的子類型,代表從不會出現的值。這意味着聲明為 never 類型的變量只能被 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) {}
}
復制代碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM