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

詳細(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ù)的4種判斷方法示例

    js回文數(shù)的4種判斷方法示例

    這篇文章主要給大家介紹了關(guān)于js回文數(shù)的4種判斷方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • js函數(shù)和this用法實(shí)例分析

    js函數(shù)和this用法實(shí)例分析

    這篇文章主要介紹了js函數(shù)和this用法,結(jié)合實(shí)例形式分析了js函數(shù)和this基本功能、原理、使用方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • jquery實(shí)現(xiàn)右側(cè)欄菜單選擇操作

    jquery實(shí)現(xiàn)右側(cè)欄菜單選擇操作

    這篇文章主要為大家詳細(xì)介紹了jquery實(shí)現(xiàn)右側(cè)欄菜單選擇操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-03-03
  • JavaScript函數(shù)的特性與應(yīng)用實(shí)踐深入詳解

    JavaScript函數(shù)的特性與應(yīng)用實(shí)踐深入詳解

    這篇文章主要介紹了JavaScript函數(shù)的特性與應(yīng)用實(shí)踐,結(jié)合實(shí)例形式較為深入的分析了javascript函數(shù)相關(guān)概念、特性、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2018-12-12
  • JS插件clipboard.js實(shí)現(xiàn)一鍵復(fù)制粘貼功能

    JS插件clipboard.js實(shí)現(xiàn)一鍵復(fù)制粘貼功能

    這篇文章主要介紹了JS插件clipboard.js實(shí)現(xiàn)一鍵復(fù)制粘貼功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • js實(shí)現(xiàn)將選中值累加到文本框的方法

    js實(shí)現(xiàn)將選中值累加到文本框的方法

    這篇文章主要介紹了js實(shí)現(xiàn)將選中值累加到文本框的方法,涉及javascript動(dòng)態(tài)操作頁面元素結(jié)點(diǎn)的相關(guān)技巧,非常簡單實(shí)用,需要的朋友可以參考下
    2015-08-08
  • 跟我學(xué)習(xí)javascript的基本類型和引用類型

    跟我學(xué)習(xí)javascript的基本類型和引用類型

    跟我學(xué)習(xí)javascript的基本類型和引用類型,利用圖解的方式,告訴大家javascript的基本類型和引用類型的區(qū)別和聯(lián)系,感興趣的小伙伴們可以參考一下
    2015-11-11
  • json對(duì)象和formData相互轉(zhuǎn)換的方式詳解

    json對(duì)象和formData相互轉(zhuǎn)換的方式詳解

    我們有兩種常見的傳參方式: JSON 對(duì)象格式和 formData 格式,但是一些場景是需要我們對(duì)這兩種數(shù)據(jù)格式進(jìn)行轉(zhuǎn)換的,這篇文章主要介紹了json對(duì)象和formData相互轉(zhuǎn)換的方式詳解,需要的朋友可以參考下
    2023-02-02
  • JS仿萬科底部的新聞滑動(dòng)特效代碼

    JS仿萬科底部的新聞滑動(dòng)特效代碼

    本文通過一段實(shí)例代碼給大家介紹了JS仿萬科底部的新聞滑動(dòng)特效代碼,需要的朋友參考下
    2017-09-09
  • 原生js實(shí)現(xiàn)拼圖效果

    原生js實(shí)現(xiàn)拼圖效果

    這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)拼圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08

最新評(píng)論