前言
使用強類型變量常常需要從一種類型向另一種類型轉換,通常使用ToString或ParseInt可以來實現一些簡單的轉換,但是有時候需要像.NET語言中那樣將一種類型顯示的轉換為另一種類型,在TypeScript規范中,被稱為"類型斷言",它仍然是類型轉換,只是語法是有些不同。下面來詳細看看TypeScript的強制類型轉換。
TypeScript強制類型轉換
在 TypeScript 中將一個 number 轉換成 string ,這樣做會報錯:
var a:number = 12345;var b:string = <string> a;// laygroundSingle.ts(24,18): error TS2352: Neither type 'number' nor type 'string' is assignable to the other.
這樣寫雖然不會報錯,但沒有什么卵用:
var a:number = 12345;var b:string = <string><any> a;console.log(typeof b)// "number" PlaygroundSingle.js:19:1
還是直接用 javascript 的方法比較靠譜:
var b:string = String(a);// orvar b:string = a.toString();
注意 new String() 和 String() 的區別:
var a:number = 12345;// 使用 new 的時候類型必須是 String 而非 string ,否則無法編譯通過var b:String = new String(a);// 不使用 new 則無所謂var c:string = String(a);console.log(a);console.log('--------b');console.log(typeof b);console.log(b);console.log(b.length);console.log('--------c');console.log(typeof c);console.log(c);console.log(c.length);結果如下: