1. 程式人生 > >一步一步學習TypeScript(08.隱式/顯示型別轉換)

一步一步學習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`