Typescript言語サービスを使用して、Typescriptファイルのシンボルの名前変更を自動化するコマンドラインnodejsツールを作成しています。
ツールに次のように指示します。このタイプのすべてのシンボルの名前をこのシンボルに変更します。resharper と同様に、ローカル変数、プロパティなどの名前も変更します。一度に複数のシンボルの名前を変更できるため、中間の一時的な一意の名前を必要とせずに、2 つのシンボル名を交換することもできます (たとえば、Foo を Bar に、またはその逆に名前を変更します)。
これを機能させるには、PullSymbol 情報を取得できるように、言語サービスのプライベート関数 getSymbolInfoAtPosition を公開する必要がありました。
現在、PullSymbol で getNameAndTypeName を呼び出すことによって、正確な名前と型の一致のみを検出しますが、構造的に互換性のある一致を実行したいと考えています。
C# では、Type に IsAssignableFrom メソッドがあるため、これは簡単です。
Typescript のサービスとしてのコンパイラを使用して、ある PullSymbol が別の PullSymbol と構造的に互換性があるかどうかを検出する方法を知っている人はいますか?
どうもありがとう、ピーター・ヴァースワイベレン