TypeScript变量在运行时工作,但在编译作用域期间中断
我试图在一个TypeScript函数中引用一个变量,该函数中断编译,但在运行时工作正常。这一行中断编译:TypeScript变量在运行时工作,但在编译作用域期间中断,typescript,visual-studio-2015,Typescript,Visual Studio 2015,我试图在一个TypeScript函数中引用一个变量,该函数中断编译,但在运行时工作正常。这一行中断编译: console.log( EXP_SETTINGS.site.userInterface.showPostbackStatusDelay ); 我之所以知道它在运行时有效,是因为我做了以下工作: 注释掉了冒犯的行 在VS2015 Pro中编译成功 找到TS compile生成的js文件,名为JSUI.js 将有问题的行插入到精确的对应位置,保存 在Chrome中运行我的网页-无错误-向控
console.log( EXP_SETTINGS.site.userInterface.showPostbackStatusDelay );
我之所以知道它在运行时有效,是因为我做了以下工作:
所以…很明显,我需要的变量是可用的,并且在全局范围内,但是TS在编译期间会崩溃。如何解决此问题?如果您确定该变量对您可用,您可以在文件中的某个位置(在基本级别)声明它:
declare const EXP_SETTINGS: any; // Replace any with appropriate type
这将允许您引用它而无需typescript抱怨。如果您有更具体的类型,我建议您使用它而不是any
或者,如果您只在一个位置使用
EXP\u设置
变量,或者您不想包含该变量的类型,您可以使用ts ignore注释手动使编译器静音:
// @ts-ignore
console.log( EXP_SETTINGS.site... );
变量来自哪里?听起来您需要为它添加键入。必须在基本级别,因此不在任何函数/类/etc中,而是在文件的根级别。此外,如果您仅在一个位置使用该变量,则在调用
控制台的正上方添加注释/@ts ignore
。log
可能是另一个好选项。