TypeScript Never型別

admin發表於2018-08-23

Never型別表示的是那些永不存在的值的型別。

使用小寫的never宣告一個Never型別,如下:

[typescript] 純文字檢視 複製程式碼
let ne:never;

總結如下:

(1).總是會丟擲異常或根本就不會有返回值的函式表示式或箭頭函式表示式的返回值型別。

(2).變數也可能是Never型別,當它們被永不為真的型別保護所約束時。

Never型別是任何型別的子型別,可以賦值給任何型別;沒有型別是Never的子型別或可以賦值給Never型別(除了Never本身)。 即使 Any型別也不可以賦值給Never型別。

程式碼例項如下:

[typescript] 純文字檢視 複製程式碼
// 返回never的函式必須存在無法達到的終點
function error(message: string): never {
  throw new Error(message);
}
// 推斷的返回值型別為never
function fail() {
  return error("Something failed");
}
// 返回never的函式必須存在無法達到的終點
function infiniteLoop(): never {
  while (true) {
  }
}
// 下面的程式碼會報錯
let never:never;
let any:any=5;
never=any;

相關文章