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

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

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

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

類型對比速查表

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

void類型

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

let a: void; 
let b: number = a; // 報錯

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

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

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

never類型

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

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

any類型

any類型表示任意類型。

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

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

我們在開發(fā)組件、模塊、定義函數(shù)、調用接口時,如果類型很難定義出來、不知道屬于什么類型等場景,可以適當使用any類型。

unknown類型

unknownany一樣,所有類型都可以分配給unknown,反之把unknown 賦值給其它類型會報錯。

// unknown 可以接收任意類型
let name:string = "jack"
let user:unknown = name;
// unknown 不可以賦值給其它類型,any除外,下面會報錯
let name:unknown = "jack"
let user:string = name;

總結:

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

void和any在項目中是比較常見的,never和unknown不常用。

常見疑問

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

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

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

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

相關文章

最新評論

北海市| 肥乡县| 依安县| 英山县| 千阳县| 六枝特区| 泽库县| 中西区| 泰来县| 巴林右旗| 乡宁县| 沽源县| 敦煌市| 梁平县| 平远县| 卢氏县| 晋中市| 施甸县| 会理县| 连云港市| 大同县| 元氏县| 略阳县| 安龙县| 岳西县| 靖边县| 建湖县| 大同县| 齐河县| 搜索| 雅安市| 松原市| 丰都县| 赤城县| 周口市| 酒泉市| 博野县| 淮北市| 洛隆县| 呼图壁县| 南华县|