0

内部で使用する単純な 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...

同様に機能するいくつかのタイピングを参照しようとしましたが、方法が見つかりませんでした. ご協力ありがとうございました。

4

1 に答える 1