TypeScript变量在运行时工作但在编译期间中断 - 范围

时间:2018-01-09 18:32:48

标签: typescript visual-studio-2015

我正在尝试在TypeScript函数中引用一个变量来打破编译但在运行时工作正常。这一行打破了编译:

console.log( EXP_SETTINGS.site.userInterface.showPostbackStatusDelay );

enter image description here

我知道它在运行时工作的原因是因为我做了以下事情:

  1. 注明了违规行。
  2. 在VS2015 Pro中进行了编译 - 成功。
  3. 找到TS编译生成的js文件,名为JSUI.js。
  4. 将违规行插入精确对应的地方,保存。
  5. 在Chrome中浏览我的网页 - 没有错误 - 向控制台发出正确的值。
  6. 所以......显然我需要的变量是可用的并且在全局范围内,但是TS在编译期间会爆炸。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果您确定该变量可用,您可以在文件中的某个位置(在基准级别)声明它:

declare const EXP_SETTINGS: any; // Replace any with appropriate type

这将允许您在没有打字稿抱怨的情况下引用它。如果您有更具体的类型,我建议使用它而不是any

或者,如果您只在一个地方使用EXP_SETTINGS变量,或者您不想为其包含类型,则可以使用ts-ignore注释手动使编译器静音:< / p>

// @ts-ignore
console.log( EXP_SETTINGS.site... );