2017-02-27 70 views
0

嗨的StackOverflow社區,Angular2打字稿聲明變量任何引發ReferenceError

我有JavaScript代碼之外,其設置全局變量的JS,但在某些情況下,這種變量不存在。我有Angular2中的配置類,它通過declare var any導入該全局變量。在這個類中,我有三元運算符靜態變量,它檢查這個全局變量是否存在(!= null),然後設置一些語句,但它拋出:Uncaught ReferenceError:未定義IMPORTED_VAR。如何解決它?

declare var IMPORTED_VAR:any; 
export class ConfigurationClass { 
    public static CONF_VAR = IMPORTED_VAR ? IMPORTED_VAR : "SOMETHING"; 
} 
+0

你不需要使用申報。只需使用var IMPORTED_VAR:當您使用'declare'時,任何 –

回答

0

最後我創建靜態構造函數在打字稿與處理這個異常

-1
declare var IMPORTED_VAR:any; 
export class ConfigurationClass { 
    public static CONF_VAR = (IMPORTED_VAR.hasOwnProperty("length") && IMPORTED_VAR.length>0) ? IMPORTED_VAR : "SOMETHING"; 
} 
+0

,那麼它只會聲明實例的實值,所以在上面的代碼中我們可以檢查實例是否具有屬性。希望它有幫助 – anshuVersatile

+0

不幸的是,如果導入的變量不存在,它仍然會引發ReferenceError。 – falcon

+3

雖然此代碼片段可能會解決問題,但[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 – DimaSan