2014-03-19 61 views
0

檢測分配給未初始化的變量請參閱代碼here打字稿:在編譯時

interface ITest { 
    Name: string 
} 

var t:ITest; 
//var t:ITest = {Name:null}; 

t.Name = "hello"; 

這是一個運行時間錯誤爲t從未初始化,並且可以通過取消註釋行解決。有沒有辦法在編譯時檢測對未初始化變量的賦值?

回答

1

不,在TypeScript中沒有標準化的方法來防止賦值給未初始化變量的屬性。

許多人會嘗試通過單元測試或斷言庫來捕獲該錯誤,以便在設置屬性之前驗證對象是否存在。

1

沒有TS不能做到這一點。有充分的理由。假設你在文件a中聲明,在文件b中設置並在文件c中使用。

TypeScript無法知道您要加載文件a然後b然後c。在運行時,您可能會首先加載文件c(使用腳本標記),並仍然會出現此錯誤。

+0

儘管確實存在無法正常工作的情況,但肯定會出現這種情況。 – WiredPrairie

+0

@WiredPrairie同意 – basarat