91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ts中的void和never類型及區別是什么

發布時間:2023-05-05 10:40:53 來源:億速云 閱讀:156 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“ts中的void和never類型及區別是什么”,內容詳細,步驟清晰,細節處理妥當,希望這篇“ts中的void和never類型及區別是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

ts中的void和never類型

void

  表示沒有任何類型

// 沒有返回值的函數,其返回值類型為 void
function warnUser(): void {
    console.log("void");
}
// 申明為 void 類型的變量,只能賦予 undefined 和 null
let unusable: void = undefined;

可以用到void 有以下幾種情況

  • 函數沒寫return

  • 只寫了 return, 沒有具體的返回值

  • return 的是 undefined

// 如果什么都不寫,此時,add 函數的返回值類型為: void
const add = () => {
     //
}
// 如果return之后什么都不寫,此時,add 函數的返回值類型為: void
const add = () => { 
     return 
}
const add = (): void => {
  // 此處,返回的 undefined 是 JS 中的一個值
  return undefined
}
// 這種寫法是明確指定函數返回值類型為 void,與上面不指定返回值類型相同
const add = (): void => {
    // 
}

never

  表示永遠不會有值的一種類型,任何類型都不能賦值給 never 類型的變量

  應用場景???(暫時沒找到)

// 返回never的函數必須存在無法達到的終點
function infiniteLoop(): never {
    while (true) {
    }
}
// 這個函數不能申明其返回值類型
function warnUser(): void {
    console.log("void");
}
function add (a?: number, b: number = 1) {
  // ?跟在參數名字的后面,表示可選的參數
  // 注意:可選參數只能在 必須參數的后面
  // 如果可選參數在必選參數的前面,會報錯
  // 設置了默認值之后,就是可選的了,不寫就會使用默認值; 可選的參數一定有值。它們不能一起使用。優先使用默認值
  console.log(111);
}

補充:void類型和never類型

void類型和never類型都是ts新增的類型,這兩者的共同點是都常見用于聲明函數的返回值的類型,這里我們把它們兩放在一起介紹有助于大家區分。 void,表示函數返回值空,即undefined。 never類型則是表示函數沒有返回值,也絕不會(never)有返回值的情況發生。

void類型

可以使用變量聲明方法去聲明void類型,除了underfined之外不能對void類型變量賦值(null也不行),所以平時聲明一個void類型的變量沒有什么大用,我們一般也只有在函數沒有返回值時去聲明。

function fn():void{
    return underfined
}

需要注意的是 return null 不能使用于void類型的函數,所以這里我來科普下nullunderfined的區別和聯系。

null和underfined相同點: 兩者都是js的基本數據類型,都表示“無,沒有” 在if 或者 == 隱式類型轉化中,null和underfined是相同的,都表示false

null和underfined不同點:
null表示"沒有對象",即該處不應該有值。典型用法是:
(1)作為函數的參數,來表示該函數的參數不是對象
(2)作為對象原型鏈的終點
undefined表示"缺少值",就是此處應該有一個值,但是還沒有定義。典型用法是:
(1)變量被聲明了,但沒有賦值時,就等于undefined。
(2)對象沒有賦值的屬性,該屬性的值為undefined。
(3)函數沒有返回值時,默認返回undefined。
(4)調用函數時,應該提供的參數沒有提供,該參數等于undefined。

never類型

never類型,也是用于函數的返回值,表示函數永遠不會返回結果,js中有函數不返回結果的情況,一般不寫return 就返回 undefined,但是這個never是什么都不返回。
比如js 的拋出錯誤異常函數,就不會返回任何結果:

function err(mag:string):never{
    throw new Error(msg);  
}

讀到這里,這篇“ts中的void和never類型及區別是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丰台区| 三穗县| 三河市| 山阳县| 信阳市| 波密县| 黑山县| 梁山县| 益阳市| 花垣县| 会昌县| 余干县| 建瓯市| 泰兴市| 柳林县| 和田市| 黄浦区| 江达县| 馆陶县| 昭通市| 东城区| 呼和浩特市| 威远县| 江口县| 花莲县| 任丘市| 清流县| 麻城市| 广东省| 永丰县| 安溪县| 海兴县| 曲周县| 墨玉县| 年辖:市辖区| 罗山县| 曲阜市| 新建县| 彭阳县| 五华县| 平泉县|