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

TypeScript中void、never、any、unknown類型的區(qū)別小結(jié)

 更新時(shí)間:2026年05月13日 09:29:22   作者:汐語W  
本文主要介紹了TypeScript中void、never、any、unknown類型的區(qū)別小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

TypeScript 的類型系統(tǒng)通過 anyunknown、void、never 提供了靈活的類型控制能力。本文將解析它們的核心差異,并給出實(shí)際開發(fā)中的使用建議,幫助我們寫出更安全的代碼。

類型對(duì)比速查表

類型可賦值給任意類型任意值可賦值給它類型安全典型場(chǎng)景
any?? 允許?? 允許? 不安全舊代碼兼容、快速調(diào)試
unknown? 禁止?? 允許?? 安全安全接收外部數(shù)據(jù)
void? 禁止? 禁止?? 安全無返回值的函數(shù)
never?? 允許? 禁止?? 安全不可達(dá)代碼、類型收窄

void類型

void表示沒有任何類型,不能直接賦值。

let a: void; 
let b: number = a; // 報(bào)錯(cuò)

給變量賦值為void是沒有意義的。

如果一個(gè)函數(shù)沒有返回值,此時(shí)我們可以定義為void

function fn():void {
    console.log('今天天氣不錯(cuò)')
}
<a href="javascript:void;" rel="external nofollow" ></a>

never類型

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

// 拋出異常
function error(): never {
  throw new Error('我是一個(gè)Error'); 
}
// 死循環(huán)
function loop(): never {
  while (true) {
    console.log('這里是死循環(huán)')
  };
}

any類型

any類型表示任意類型。

let num:number = 1000;
num = "jack" // 報(bào)錯(cuò)
let num:any = 1000;
num = "jack" // 不報(bào)錯(cuò)
// 調(diào)用方法,依然不報(bào)錯(cuò)
num.setName('jack')

雖然any不做任何約束,但是非常不推薦這樣使用,這樣會(huì)帶來隱患。

我們?cè)陂_發(fā)組件、模塊、定義函數(shù)、調(diào)用接口時(shí),如果類型很難定義出來、不知道屬于什么類型等場(chǎng)景,可以適當(dāng)使用any類型。

unknown類型

unknownany一樣,所有類型都可以分配給unknown,反之把unknown 賦值給其它類型會(huì)報(bào)錯(cuò)。

// unknown 可以接收任意類型
let name:string = "jack"
let user:unknown = name;
// unknown 不可以賦值給其它類型,any除外,下面會(huì)報(bào)錯(cuò)
let name:unknown = "jack"
let user:string = name;

總結(jié):

  • 能確定類型的,盡量定義類型。
  • 無法確定類型的,可以使用 any 進(jìn)行兜底。
  • 當(dāng)函數(shù)沒有返回值時(shí),可以使用void定義。
  • any和unknown可以接收任意類型值,any可以賦值給任意類型,但unknown不可以賦值給任意類型。

void和any在項(xiàng)目中是比較常見的,never和unknown不常用。

常見疑問

Q:unknown 和 any 的區(qū)別?A:unknown 必須顯式類型檢查后才能使用,而 any 完全跳過類型安全。

Q:函數(shù)聲明返回 void 卻返回了值會(huì)怎樣?A:TypeScript 不會(huì)報(bào)錯(cuò),但這是邏輯矛盾,建議保持聲明與實(shí)際一致。

Q:什么時(shí)候必須用 never?A:當(dāng)函數(shù)永遠(yuǎn)不會(huì)正常返回時(shí)(如無限循環(huán)),或用于類型收窄的兜底檢查。

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

相關(guān)文章

最新評(píng)論

金沙县| 玛纳斯县| 水富县| 两当县| 双鸭山市| 惠东县| 梁平县| 丰台区| 白沙| 台北县| 泰和县| 任丘市| 江孜县| 子长县| 自治县| 鹿邑县| 张家港市| 永新县| 巴里| 竹溪县| 嘉禾县| 海安县| 革吉县| 淮北市| 沙坪坝区| 平陆县| 翁源县| 盐山县| 巨野县| 锡林郭勒盟| 大方县| 天津市| 宝丰县| 陕西省| 宁陕县| 贺州市| 景东| 沅江市| 资中县| 阿勒泰市| 南陵县|