我正在为我的内部使用开发一个简单的 RPC 客户端/服务器库。我想使用一个接口来描述客户端和服务器,这样我就可以在我的通用应用程序中的服务器和浏览器之间共享它们。
服务器很简单,服务只是扩展了我的 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...
我试图浏览一些类似的类型,但找不到方法。谢谢您的帮助。