一步一步學習TypeScript(08.隱式/顯示類型轉換)

implicit/explicit cast (隱式/顯示類型轉換)


  • TypeScript中可以顯示錶明對象的類型 .
  • 轉換一個類型到其它類型時可以使用<>符號, 如 <T>value .
  • any類型可以轉換成任意對象類型,反之亦然 .

看下面代碼說明

class A{
    run(){
        console.log('run run run');
    }

    jump(){
        console.log('jump jump jump');
    }
}

class B{
    run(): void{
        console.log('slow run');
    }

    cry(){
        console.log('cry cry cry');
    }

}

var a = new A();     //隱式轉換a的類型
var a1: A = new A(); //也可以顯示的表明a1的類型

var b = new B();
a = b;     //錯誤, 類型B不能直接賦值給類型A, 因爲在B中沒有定義jump方法
a = <A> b; //錯誤, ts中使用 `<>` 進行強制類型轉換 ,錯誤原因同上

var b1: any = new B();  //聲明爲any類型 any類型可以轉成任意其它類型,反之亦然
a = b1;    //OK
b1 = a;    //OK

var b2: any = new B();
var newA = <A>b2;  //把b2的B類型轉爲A類型
newA.run();        //OK, 打印 slow run
newA.jump();       //編譯期間不會有問題,  但是運行期間會出現異常 `newA.jump is not a function`
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章