TypeScript之類型斷言

類型斷言知識點

語法:

<類型> 值   或者   值 as 類型

類型斷言解決的問題:

function doAs(a:string | number):void{
    console.log(a.length);   //報錯,類型“number”上不存在屬性“length”。
}


//使用類型斷言時,要加上括號,如(<string>a).length
function doAs(a:string|number):void{
    console.log((<string>a).length); //沒問題
}

function doAs(a:string|number):void{
    console.log((a as string).length); //沒問題
}

由於定義函數參數用了混合類型,裏面只能訪問混合類型的公共屬性。當我們必須用到某個類型的獨有屬性時,就得使用類型斷言。即將一個聯合類型的變量指定爲一個更加具體的類型

注意:

  1. 類型斷言不是類型轉換,斷言成一個聯合類型中不存在的類型是不允許的.
  2. jsx語法中,只能使用 as
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章