any、unknown、never 、void的區別
-
any 表示任意類型,設置為any相當於對該變量關閉了TS的類型檢測。不建議使用
let a;(隱式any) //聲明變量不賦值,就是any 等效於let a:any = 10;(顯示any) a=10 a='hello' 區別: let s= string //給s變量設置類型string s = a; //a是any類型,它可以賦值給任意變量 此時s的類型也被影響了 -
unknown 表示未知的類型
let b:unknown; b=10; b="hello"; 區別: let s= string //給s變量設置類型string s = b; //b是unknown 此時s的類型不會被影響。代碼會報錯總結:any和unknown相同點在於都是可以賦值不同的值,區別在於如果把unknown類型的值賦值給別的類型會報錯。
-
never 表示永遠不會返回結果
function fn():never { throw new Error ('報錯了') //報錯時程序結束運行,不會有返回值 } -
void 表式空,以函數為例,表示沒有返回值的函數
function fn():void {}
