1

我构建了一个控制台应用程序来查找我项目中的所有 *.ts 文件,然后使用 tsc.exe 编译它们。

一切正常,但是当我将 JavaScript 文件转换为 TypeScript 时,我最终遇到了以下错误:

ytsc.js(21053, 17) Microsoft JScipt 运行时错误:“窗口”未定义

每次我尝试扩展窗口时都会发生这种情况:

window['prop'] = "something";

我测试了代码,直到找到答案,这与我的代码无关......

4

1 回答 1

2

错误是我的构建工具。

我在调用 tsc.exe 时声明了 -e(执行)命令行选项:我这样做是因为我认为我可能会在模块中添加一些自动化测试代码。

错误原因:我的大部分代码都在函数中。但是,有几个地方我想扩展“窗口”(例如,如果旧浏览器中缺少内置函数,我正在填充这些调用)。填充窗口对象的代码在文件加载时运行:

if (window.fun == null) {
    window.fun = function(){...};
}

无论如何,由于 -e 选项,tsc.exe 试图运行代码(在浏览器环境之外)。这导致了上述错误。

于 2012-10-12T03:12:48.657 回答