5

クライアント側に TypeScript を使用する小さな MVC4 Web アプリがあります (~40 の .ts ファイル)。

TS を 0.9.1.1 にアップグレードしたところ、Visual Studio 2012 のエラー リストに lib.d.ts に 100 以上のエラーが表示されるようになりました。

この問題は避けられません (私たちのチームのすべてのメンバーがアップグレードしたときに同じ問題が発生しました) が、確実に再現することは文字通り不可能です。いくつかの動作:

  • エラーはすぐには表示されず、一定の (一見ランダムな) 時間が経過した後にのみ表示されます。
  • 通常、ファイルの保存時にトリガーされます。
  • それらは次のようなものです:

    「すべての名前付きプロパティは、文字列インデクサー タイプ 'any' のサブタイプである必要があります」

  • プロジェクトから .ts ファイルを削除するか、VS を再起動すると、一時的に消えますが、常に元に戻ります。
  • コンパイラは引き続き実行され、すべての .js ファイルが正しく生成されます。

VS2012 と VS2013 RC の両方で、新しい空のプロジェクトをセットアップしてみました。その後、TS クラスを 1 つずつ追加し始めました。ある時点でエラーが表示されます。ただし、15 ~ 20 個の .ts ファイルに近づいたときにのみ発生するようです。

私はここで頭がいっぱいです。

PS。エラー リストの [プロジェクト] 列の下には、プロジェクトではなく、特定のファイルの名前が付けられていることがよくあります。多くの場合、underscore.d.ts などの定義ファイルです。なぜこれがプロジェクトと呼ばれるのですか?

編集:

単一の .ts ファイルといくつかの定義ファイルを使用して、これを再作成することができました。

App.ts

module Application {
    export class Main {
        constructor(options?) {
        }
    }
}

以下の最新バージョンに加えて:

backbone.d.ts
jquery.d.ts
underscore.d.ts
backbone.relational.d.ts

私は多くの迅速な変更を行い、App.ts に保存して、5 秒で ~10 を再現しました。これは、ファイルのアクセス許可エラーを示唆していますか?

4

2 に答える 2

0

これは、typescript 言語サービスで行われた最適化によるものと思われます。Visual Studio は分析のために情報を部分的に更新しようとしますが、分析が遅れると、更新コマンドの背後でこれが発生します。

一時的な修正は、ファイルの内容全体を切り取って貼り付けることです。これにより、言語サービスにファイルの新しいビューが提供されます。

于 2013-09-20T23:16:43.410 に答える