内部で使用する単純な RPC クライアント/サーバー ライブラリを開発しています。1 つのインターフェイスを使用してクライアントとサーバーの両方を記述し、ユニバーサル アプリケーションでサーバーとブラウザー間でそれらを共有できるようにします。
サーバーは簡単です。サービスは単に Service クラスを拡張し、API を記述するインターフェースを実装するだけです。
クライアントは ES6 プロキシとして実装され、すべてのメソッド呼び出しをサーバーに送信するだけです。サービス クラスと同様に厳密に型指定したいと考えています。タイプ ServiceClient のインスタンスが、それが何であるかに関係なく、そのタイプ パラメータのすべてのメソッドとプロパティを持つ必要があります。
私はこの構文について考えていました:
interface Api
{
foo(): boolean;
}
class MyService extends Service implements Api
{
public foo(): boolean { return true; }
}
// usage
let result = (new ServiceClient<Api>()).foo(); // type of result is inferred, I get an error if I try to use an undefined method, arguments are type checked...
同様に機能するいくつかのタイピングを参照しようとしましたが、方法が見つかりませんでした. ご協力ありがとうございました。