2017-03-13 68 views
0
function doSomething(a : any) { 
    let b = (a as Array<any>) 
    alert(typeof b) // gives "string" 
} 

doSomething("Hello") 

警報顯示「字符串」。我期望的是像null。我還沒有找到關於as運營商的很多文檔。也許this是「官方」之一。TypeScript類型使用as運算符投射字符串

這裏是a related quetion

我還需要自己檢查b的類型嗎?

回答

2

as運算符和其他斷言語法<T>expr與語法相同。根本不會導致任何運行時行爲。

+0

所以我必須小心,因爲可能存在運行時錯誤。我已經閱讀了編譯後的代碼,它看起來就像人們可以編寫的純JS一樣。爲什麼編譯器不會抱怨轉換可能會失敗? (雖然實際上它不會失敗?) – LShi

+0

你說這個類型是'任何' - 沒有你可以寫的將保證成功! –

+0

是的,這是我的錯......我喜歡Swift的'如果讓a = b那樣?類型{...}'。謝謝! – LShi

相關問題