2017-02-27 76 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