欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ts中的void和never類型及區(qū)別

 更新時(shí)間:2023年05月05日 09:23:40   作者:夏目友人喵  
void類型和never類型都是ts新增的類型,這兩者的共同點(diǎn)是都常見(jiàn)用于聲明函數(shù)的返回值的類型,這里我們把它們兩放在一起介紹有助于大家區(qū)分,這篇文章主要介紹了ts中的void和never類型及區(qū)別,需要的朋友可以參考下

ts中的void和never類型

void

  表示沒(méi)有任何類型

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

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

  • 函數(shù)沒(méi)寫return
  • 只寫了 return, 沒(méi)有具體的返回值
  • return 的是 undefined
// 如果什么都不寫,此時(shí),add 函數(shù)的返回值類型為: void
const add = () => {
     //
}
// 如果return之后什么都不寫,此時(shí),add 函數(shù)的返回值類型為: void
const add = () => { 
     return 
}
const add = (): void => {
  // 此處,返回的 undefined 是 JS 中的一個(gè)值
  return undefined
}
// 這種寫法是明確指定函數(shù)返回值類型為 void,與上面不指定返回值類型相同
const add = (): void => {
    // 
}

never

  表示永遠(yuǎn)不會(huì)有值的一種類型,任何類型都不能賦值給 never 類型的變量

  應(yīng)用場(chǎng)景???(暫時(shí)沒(méi)找到)

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

補(bǔ)充:void類型和never類型

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

void類型

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

function fn():void{
    return underfined
}

需要注意的是 return null 不能使用于void類型的函數(shù),所以這里我來(lái)科普下nullunderfined的區(qū)別和聯(lián)系。

null和underfined相同點(diǎn): 兩者都是js的基本數(shù)據(jù)類型,都表示“無(wú),沒(méi)有” 在if 或者 == 隱式類型轉(zhuǎn)化中,null和underfined是相同的,都表示false

null和underfined不同點(diǎn):
null表示"沒(méi)有對(duì)象",即該處不應(yīng)該有值。典型用法是:
(1)作為函數(shù)的參數(shù),來(lái)表示該函數(shù)的參數(shù)不是對(duì)象
(2)作為對(duì)象原型鏈的終點(diǎn)
undefined表示"缺少值",就是此處應(yīng)該有一個(gè)值,但是還沒(méi)有定義。典型用法是:
(1)變量被聲明了,但沒(méi)有賦值時(shí),就等于undefined。
(2)對(duì)象沒(méi)有賦值的屬性,該屬性的值為undefined。
(3)函數(shù)沒(méi)有返回值時(shí),默認(rèn)返回undefined。
(4)調(diào)用函數(shù)時(shí),應(yīng)該提供的參數(shù)沒(méi)有提供,該參數(shù)等于undefined。

never類型

never類型,也是用于函數(shù)的返回值,表示函數(shù)永遠(yuǎn)不會(huì)返回結(jié)果,js中有函數(shù)不返回結(jié)果的情況,一般不寫return 就返回 undefined,但是這個(gè)never是什么都不返回。
比如js 的拋出錯(cuò)誤異常函數(shù),就不會(huì)返回任何結(jié)果:

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

到此這篇關(guān)于ts中的void和never類型的文章就介紹到這了,更多相關(guān)ts void和never內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • js簡(jiǎn)單的分頁(yè)器插件代碼實(shí)例

    js簡(jiǎn)單的分頁(yè)器插件代碼實(shí)例

    這篇文章主要介紹了js簡(jiǎn)單的分頁(yè)器插件代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 跟我學(xué)習(xí)JScript的Bug與內(nèi)存管理

    跟我學(xué)習(xí)JScript的Bug與內(nèi)存管理

    跟我學(xué)習(xí)JScript的Bug與內(nèi)存管理,小編對(duì)JScript的Bug與內(nèi)存管理也不甚了解,所以整理了本篇文章,希望可以解決大家學(xué)習(xí)時(shí)的困擾。
    2015-11-11
  • 使用bootstrap莫名其妙出現(xiàn)橫向滾動(dòng)條的問(wèn)題及解決

    使用bootstrap莫名其妙出現(xiàn)橫向滾動(dòng)條的問(wèn)題及解決

    這篇文章主要介紹了使用bootstrap莫名其妙出現(xiàn)橫向滾動(dòng)條的問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • JS實(shí)現(xiàn)壓縮上傳圖片base64長(zhǎng)度功能

    JS實(shí)現(xiàn)壓縮上傳圖片base64長(zhǎng)度功能

    這篇文章主要介紹了js實(shí)現(xiàn)壓縮上傳圖片base64長(zhǎng)度功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 微信小程序動(dòng)態(tài)添加view組件的實(shí)例代碼

    微信小程序動(dòng)態(tài)添加view組件的實(shí)例代碼

    本文通過(guò)實(shí)例代碼給大家介紹了微信小程序動(dòng)態(tài)添加view組件的方法,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • 微信小程序官方動(dòng)態(tài)自定義底部tabBar的例子

    微信小程序官方動(dòng)態(tài)自定義底部tabBar的例子

    這篇文章主要介紹了微信小程序官方動(dòng)態(tài)自定義底部tabBar的例子,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • JavaScript 撐出頁(yè)面文字換行

    JavaScript 撐出頁(yè)面文字換行

    最近在做Web 頁(yè)面,雖然不是很喜歡,不過(guò)既然公司安排了,就好好做吧,還是學(xué)了不少東西。
    2009-06-06
  • JS對(duì)象類型賦值和原生類型賦值原理解析

    JS對(duì)象類型賦值和原生類型賦值原理解析

    在本文中,我試圖以最簡(jiǎn)潔的方式來(lái)闡明JavaScript編程原理中對(duì)象類型賦值和原生類型賦值之間的區(qū)別,以及它們各自是如何工作的,感興趣的朋友跟隨小編一起看看吧
    2023-09-09
  • Code Review 方法論與實(shí)踐總結(jié)梳理

    Code Review 方法論與實(shí)踐總結(jié)梳理

    這篇文章主要為大家介紹了Code Review 方法論與實(shí)踐總結(jié)梳理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • TypeScript遍歷Array的方法(for,forEach,every)

    TypeScript遍歷Array的方法(for,forEach,every)

    本文主要介紹了TypeScript遍歷Array的方法(for,forEach,every),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06

最新評(píng)論