我构建了一个控制台应用程序来查找项目中的所有* .ts文件,然后使用tsc.exe编译它们。
一切正常,但是当我将我的JavaScript文件转换为TypeScript时,我最终遇到了以下错误:
ytsc.js(21053,17)Microsoft JScipt运行时错误:'window'未定义
每当我试图扩展窗口时发生这种情况:
window['prop'] = "something";
我测试了代码,直到找到了答案,这与我的代码没什么关系......
答案 0 :(得分:2)
错误是我的构建工具。
我在调用tsc.exe时声明了-e(execute)命令行选项: 我这样做是因为我认为我可能会在模块中添加一些自动测试代码。
错误原因: 我的大多数代码都在函数中。 但是,有一些地方我想扩展“窗口”(例如,如果旧浏览器中缺少内置函数,我正在填充这些调用)。填充窗口对象的代码在加载文件时运行:
if (window.fun == null) {
window.fun = function(){...};
}
无论如何,由于-e选项,tsc.exe试图运行代码(在浏览器环境之外)。这导致了上述错误。