【问题标题】:Angular2 Typescript declare variable any throws ReferenceErrorAngular2 Typescript声明变量任何抛出ReferenceError
【发布时间】:2017-02-27 12:06:11
【问题描述】:

您好 StackOverflow 社区,

我有设置全局 js 变量的 JavaScript 代码,但在某些情况下该变量不存在。我在 Angular2 中有配置类,它通过 declare var any 导入该全局变量。在类中,我有带有三元运算符的静态变量,它检查这个全局变量是否存在(!= null)然后设置一些语句,但它抛出:未捕获的 ReferenceError:IMPORTED_VAR 未定义。如何解决?

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

【问题讨论】:

  • 你不需要使用声明。只需使用 var IMPORTED_VAR:any

标签: angular typescript declare any referenceerror


【解决方案1】:

最后我在打字稿中创建了静态构造函数来处理这个异常

【讨论】:

    【解决方案2】:
    declare var IMPORTED_VAR:any;
    export class ConfigurationClass {
      public static CONF_VAR = (IMPORTED_VAR.hasOwnProperty("length") && IMPORTED_VAR.length>0) ? IMPORTED_VAR : "SOMETHING";
    }
    

    【讨论】:

    • 当您使用declare 时,它只会声明实例的非真实值,因此在上面的代码中我们可以检查实例是否具有属性。希望对你有帮助
    • 不幸的是,如果导入的变量不存在,它仍然会抛出 ReferenceError。
    • 虽然这段代码 sn-p 可以解决问题,including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
    猜你喜欢
    • 2016-03-17
    • 2016-05-30
    • 1970-01-01
    • 2022-08-19
    • 2016-12-07
    • 1970-01-01
    • 2016-12-27
    • 2022-01-15
    • 1970-01-01
    相关资源
    最近更新 更多