TS中的unknown類型

我們可以對(duì) any 進(jìn)行任何操作,不需要檢查類型。
let value:any;value = ture;value = 1;value.length;
沒有類型檢查就沒有意義了,跟寫 JS 一樣。很不安全。
unknown
也可以把任何值賦值給 unknown
let value:any;value = ture;value = 1;
但是不能調(diào)用屬性和方法
value.length; // 錯(cuò)誤寫法如果需要調(diào)用屬性和方法,那么你可能需要類型斷言
let value:unknown;value = 'hello';(value as string).length
再或者使用類型保護(hù)
let value:unknown;value = 'hello';if (typeof value === 'string') {value.length}
聯(lián)合類型中的 unknown 定義
如果聯(lián)合類型中有 unknown,那么最終得到的都是 unknown 類型
type U1 = unknown | null;type U2 = unknown | string;type U3 = unknown | number;
類型別名 U1,U2,U3 都是 unknown 類型
總結(jié):unknown 類型比 any 類型更加的嚴(yán)格,不能調(diào)用屬性和方法。
評(píng)論
圖片
表情
