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 に答える