最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳細(xì)聊聊TypeScript中any unknown never和void的區(qū)別

 更新時(shí)間:2023年07月04日 09:26:23   作者:前端呆頭鵝  
這篇文章主要給大家聊聊TypeScript 中 any、unknown、never 和 void 有什么區(qū)別,文中有詳細(xì)的代碼實(shí)例講解,具有一定的參考價(jià)值,需要的朋友可以參考下

一 unknown: 未知類型

unknown: 未知類型是typescript 3.0 中引入的新類型。

1.1 所有類型的字面量都可以分配給unknown類型

unknown未知類型,代表變量類型未知,也就是可能為任意類型,所以, 所有類型的字面量都可以分配給unknown類型。
這里聲明一個(gè)unknown的變量,先后為其賦值字符串、數(shù)字和對(duì)象類型的字面量取值,都可以成功賦值。

let notSure: unknown = 'sisterAn!'
// 可以被賦值任意類型
notSure = 'sisterAn!'
notSure = 512
notSure = { hello: () => 'Hello sisterAn!' }

1.2 unknown 類型不允許給 any 或 unknown 以外的變量賦值

unknown 未知變量,既然類型未知,也就無法賦值給具體的某個(gè)類型,unknown 未知變量不允許給 any 或 unknown 以外的變量賦值。

兩個(gè)未知變量之間可以相互賦值

let notSure: unknown = 2
let notSure1: unknown = 'Hello'
notSure = notSure1

未知變量和any變量可以相互賦值

let notSure: unknown = 2
let any1: any = 12
notSure = any1
any1 = notSure

未知變量不可以為其他變量賦值

let notSure: unknown = 2
let num: number = 12
notSure = num
any1 = notSure
num = notSure // error: Type 'unknown' is not assignable to type 'number'.

1.3 unknown 類型變量不可以執(zhí)行具體類型的方法

unknown 類型變量不可以執(zhí)行具體類型的方法,即使它真的是這個(gè)類型,除非你使用斷言。

let notSure: unknown = 'sisterAn'
let num: number = 12
notSure = num
notSure.toLowerCase()
// error: Object is of type 'unknown'.

二 never:永不存在的值

never類型表示的是那些永不存在的值的類型。

2.1 never:執(zhí)行中斷的函數(shù)返回值類型

never通常用來指由于種種原因,函數(shù)沒有執(zhí)行到最后,導(dǎo)致不存在返回值的返回值類型。

示例一:拋出異常會(huì)直接中斷程序運(yùn)行,這樣程序就運(yùn)行不到返回值那一步了,即具有不可達(dá)的終點(diǎn),也就永不存在返回了

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

示例二:死循環(huán),同樣程序永遠(yuǎn)無法運(yùn)行到函數(shù)返回值那一步,即永不存在返回。

function loopForever(): never {
    while (true) {};
}

2.2 never可以賦值給任何類型,但是不能被賦值

never類型是任何類型的子類型,也可以賦值給任何類型;然而,沒有類型是never的子類型或可以賦值給never類型(除了never本身之外)。 即使 any也不可以賦值給never。

三 void:函數(shù)無返回值

函數(shù)則無返回值或者返回 undefined。

function a(): number { // ERROR: 其聲明類型不為 "void" 或 "any" 的函數(shù)必須返回值
  console.log(123)
}
function a(): void {
  console.log(123)
}

你只能為它賦予undefined和null。

let a: void = 1 // ERROR: 不能將類型“number”分配給類型“void”
let a: void = undefined

四 any:在編譯時(shí)可選擇地包含或移除類型檢查

any實(shí)際上是跳過類型檢查的過程,所以允許你給它賦任意值,也可以調(diào)用任意的方法。相比較來說,Object類型的變量只是允許你給它賦任意值 - 但是卻不能夠在它上面調(diào)用任意的方法。

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

相關(guān)文章

  • js實(shí)現(xiàn)固定顯示區(qū)域內(nèi)自動(dòng)縮放圖片的方法

    js實(shí)現(xiàn)固定顯示區(qū)域內(nèi)自動(dòng)縮放圖片的方法

    這篇文章主要介紹了js實(shí)現(xiàn)固定顯示區(qū)域內(nèi)自動(dòng)縮放圖片的方法,實(shí)例分析了javascript操作頁面元素及屬性的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • Webpack打包c(diǎn)ss后z-index被重新計(jì)算的解決方法

    Webpack打包c(diǎn)ss后z-index被重新計(jì)算的解決方法

    這篇文章主要跟大家分享了Webpack打包c(diǎn)ss后z-index被重新計(jì)算的解決方法,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-06-06
  • IE下JS讀取xml文件示例代碼

    IE下JS讀取xml文件示例代碼

    JS讀取xml文件具體步驟為:創(chuàng)建DOM對(duì)象、加載xml文件(僅適用于IE)附示例代碼,感興趣的朋友可以參考下,希望對(duì)大家有所幫助
    2013-08-08
  • 前端安全之DOMPurify基礎(chǔ)安裝與用法

    前端安全之DOMPurify基礎(chǔ)安裝與用法

    這篇文章主要介紹了前端安全之DOMPurify基礎(chǔ)安裝與用法的相關(guān)資料,DOMPurify是防御XSS攻擊的HTML凈化庫,支持npm/yarn安裝及CDN引入,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-06-06
  • 微信小程序自定義Modal彈框

    微信小程序自定義Modal彈框

    這篇文章主要為大家詳細(xì)介紹了微信小程序自定義Modal彈框效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • JavaScript進(jìn)階(三)閉包原理與用法詳解

    JavaScript進(jìn)階(三)閉包原理與用法詳解

    這篇文章主要介紹了JavaScript閉包原理與用法,結(jié)合實(shí)例形式詳細(xì)分析了JavaScript閉包相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • JavaScript樹形菜單功能實(shí)現(xiàn)方法總結(jié)

    JavaScript樹形菜單功能實(shí)現(xiàn)方法總結(jié)

    樹形菜單是前端開發(fā)中常見的交互組件,用于展示具有層級(jí)關(guān)系的數(shù)據(jù)(如文件目錄、分類列表、組織架構(gòu)等),這篇文章主要介紹了JavaScript樹形菜單功能實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下
    2025-08-08
  • 一文帶你掌握J(rèn)avaScript異步編程的五種方式

    一文帶你掌握J(rèn)avaScript異步編程的五種方式

    異步可以理解為把一個(gè)任務(wù)分成了兩段,先執(zhí)行第一段,轉(zhuǎn)而去執(zhí)行其它任務(wù),等準(zhǔn)備完畢后,再回過頭來執(zhí)行第二段, 本文主要來和大家聊聊JavaScript異步編程的五種方式,感興趣的可以了解下
    2025-07-07
  • 檢查表單元素的值是否為空的實(shí)例代碼

    檢查表單元素的值是否為空的實(shí)例代碼

    這篇文章主要介紹了檢查表單元素的值是否為空的實(shí)例代碼的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • Firefox/Chrome/Safari的中可直接使用$/$$函數(shù)進(jìn)行調(diào)試

    Firefox/Chrome/Safari的中可直接使用$/$$函數(shù)進(jìn)行調(diào)試

    偶然發(fā)現(xiàn)的,頁面中沒有引入Prototype和jQuery。控制臺(tái)中敲$卻發(fā)現(xiàn)是一個(gè)函數(shù)。又試著敲$$,也是個(gè)function
    2012-02-02

最新評(píng)論

七台河市| 青冈县| 南漳县| 买车| 常山县| 湟中县| 云南省| 怀安县| 乐昌市| 华宁县| 广平县| 茂名市| 边坝县| 托里县| 宁城县| 游戏| 阳西县| 石景山区| 文安县| 东港市| 班玛县| 温州市| 探索| 顺义区| 同德县| 罗田县| 安龙县| 瑞安市| 蒲城县| 渑池县| 宁蒗| 东兴市| 克山县| 莎车县| 郯城县| 定边县| 怀来县| 含山县| 海口市| 普陀区| 寿宁县|