TypeScript のコードインスペクションとクイックフィックス
ReSharper のコード解析の主な機能は、TypeScript でもサポートされています。これらの機能の詳細については、コード解析の該当するトピックを参照してください。このセクションのサブジェクトでは、フィーチャマトリックスを見つけて、TypeScript で正確にサポートされているものを確認することもできます。
このトピックでは、TypeScript でコード解析機能を使用する例をいくつか見てみましょう。
コードインスペクション
ReSharper のコードインスペクションは、TypeScript ファイル内のコンパイラーエラーおよびその他のコードの問題を検出します。デフォルトでは、TypeScript コードは設計時にインスペクションされます。必要に応じて、特定のスコープでコードインスペクションを実行することもできます。

コードインスペクションの動作とコード生成結果は、TypeScript プロジェクトの設定によって異なります。Visual Studio 2013 以降では、プロジェクトプロパティエディターでこの設定の最初の 2 つを構成できます(プロジェクトを右クリックして Properties を選択します)。Visual Studio 2012 では、プロジェクトファイル .csproj を編集することによってのみ、これらのプロパティを手動で変更できます。
- TargetEsVersion (ECMAScript のバージョン)
バージョンが 5 未満の場合、ReSharper は
get
およびset
の使用をエラーとして検出します。バージョンが 5 以上の場合、ReSharper は 8 進リテラルをエラーとして検出し、16 進リテラルまたは 10 進リテラルに置き換えることを提案します。- NotImplicitAny (暗黙の any 型を許可する)
このプロパティに応じて、ReSharper は暗黙の「any」タイプ(たとえば、
var a; a = 5;
)をエラーとして検出するかどうかを決定します。- TypeScriptNoResolve
このオプションが「true」に設定されている場合、ReSharper は外部モジュールの使用をエラーとして検出します。
コードインスペクションの動作は、ReSharper オプション Alt+R, O の ページで構成されたオプションによっても異なります。詳細については、TypeScript のコードスタイル支援を参照してください。
クイックフィックス
クイックフィックスを使用すると、コードインスペクションで見つかったコードの問題のほとんどを自動的に解決することができます。コードの問題に対して 1 つ以上のクイックフィックスが利用可能な場合は、キャレットがハイライトされたコード上にあるときに対応するアクションインジケータが表示されます。目的の修正を確認して適用するには、Alt+Enter を押します。
ReSharper は TypeScript に数十のクイックフィックスを提供します。ここではいくつかの例を示します。
不足しているインポートを追加する
ReSharper は、現在のファイルにインポートされていないタイプを検出すると、ハイライトし、不足しているインポートをすべて一度に追加することを提案します。詳細については、欠落している名前空間をインポートするを参照してください。

不足しているメンバーの実装
ReSharper は実装されていないメンバーを自動的に生成することを提案しています:

関数のオーバーロードの名前を正しく変更する
タイプミスのために関数のオーバーロードの名前が同じでない場合、ReSharper は不一致の名前をハイライトし、クイックフィックスを提案します。

公開 / 非公開にする
デフォルトメンバーのアクセシビリティは public ですが、関数を private として明示的に指定した場合、そのすべてのオーバーロードは同じ修飾子を持つ必要があります。そうでない場合、ReSharper はそれをハイライトし、変更を提案します。

型アノテーションの追加
type が指定されていない場合は、変数がハイライトされます。Alt+Enter を押してクイックフィックスのリストを表示し、次のものを適用します。必要な型アノテーションが追加されます。

疑問符の削除
TypeScript では、オプションのパラメーターにデフォルト値を設定することはできません。それらが偶然持っていた場合は、疑問符を削除するか、初期化子を削除します。

アンビエント関数本体を削除する
コード内に不要な構造を保持する必要はありません。コードを読めるようにするために、ReSharper は、たとえば、関数の本体を削除することを提案しています。

ReSharper に特定のコードを無視させる
ソリューションのコードの一部をコード分析、ナビゲーション、その他の機能から除外するために、ReSharper では特定のファイル、フォルダー、ファイルマスクをさまざまな方法で無視するを使用できます。
パフォーマンスを向上させるために、ReSharper は、参照がなく、おそらく誤ってソリューションに追加された大きな Web ファイルを自動的に検出し、無視し始めます。
そのようなファイルのいずれかが検出された場合、必要に応じてそれらのファイルの無視を停止できる通知が表示されます。ReSharper オプションの
ページでも、自動的に無視されるすべてのファイルを見つけることができます。自動検出を停止し、大きな未使用の Web ファイルを無視するには、ReSharper オプションのパフォーマンスに影響を与える可能性のある Web ファイルを検索し、インデックス作成から除外しますチェックボックスをオフにします。
ページで関連ページ:

コード解析
ReSharper は、エディター内の単一のステートメントから、ソリューション全体のアーキテクチャまで、さまざまなレベルのコードを分析できます。コードの問題を見つける:ReSharper は、C#、VB.NET、XAML、XML、ASP.NET、ASP.NET MVC、Razor、JavaScript、TypeScript、HTML、CSS、ResX で 2500 を超えるコードインスペクションを適用することにより、静的コード分析(コードインスペクションとも呼ばれます)を提供します。スクリプト...

設計時にコードの問題を分析する
ReSharper は、エディターでコードファイルを開くとすぐに分析を開始し、最後まで編集を続けます。検出されたすべてのコードの問題は、重大度に従ってエディターでハイライトされます。問題のマップは、エディターウィンドウの右側のマーカーバーにも表示されます。ここでは、ファイルのステータスを即座に確認し、マークをクリックして特定のコードの問題に移動できます。デザインタイムインスペクションの機能:ReSharper によって実行されるデザインタイムコードインスペクションを説明するために、エディターに...

特定の範囲でコードの問題を見つける
設計時コードインスペクションは、エディターでコーディングしたり、特定のファイルを見直したりするときに役立ちます。ただし、ReSharper を使用すると、ソリューション全体または狭い範囲でスタティックコード分析を実行し、結果をフレンドリーな視点で調べることもできます。必要に応じてインスペクション結果を共有することもできます。開始コードインスペクション:ソリューション、プロジェクト、カスタムスコープのコードをインスペクションするソリューションワイドのインスペクションの結果(たとえば、未使用のパブ...

TypeScript のコード生成
ReSharper は、定型コードを生成するさまざまな方法を提供します。例: 宣言されていないコードシンボルを使用し、これらのシンボルを用途に基づいて自動的に生成したり、型メンバーを生成したりすることができます。使用箇所からコードを生成する:ReSharper では、宣言する前にコードシンボル(クラス、メソッド、変数など)を使用できます。ReSharper は、宣言されていないシンボルを検出すると、使用箇所に基づいて宣言を生成するための 1 つ以上のクイックフィックスを提案し、使用状況に従って...

アクションインジケーターとアクションリスト
ReSharper が Visual Studio テキストエディターに追加する最も注目すべきものの中には、アクションインジケータとアクションリストがあります。これらは、ReSharper でサポートされているすべてのファイル(C#、VB.NET、XML、CSS、JavaScript、ASP.NET など)に表示され、使用可能なアクションについて通知し、適用できます。アクションインジケータ:アクションインジケーターは、設定に応じて、アクションバー、テキストエディターの左マージンおよび / また...

欠落している名前空間をインポートする
ファイルに名前空間がインポートされていない型を使用する場合、ReSharper はこれらの型を見つけて不足している名前空間インポートディレクティブを追加できます。たとえば、ファイルにコードのブロックを貼り付けた後など、未解決の型にいくつかの不足している名前空間がある場合、ReSharper はこれらすべての名前空間を 1 回の操作でインポートできます。ReSharper は、現在のプロジェクトで参照されているアセンブリ、ソリューション内の他のプロジェクトで参照されているアセンブリ、推移的に参照さ...