【发布时间】:2020-08-21 02:50:05
【问题描述】:
我正在尝试将 websocket 消息封装成定义明确的类型。
我有主要的 IIncommingMessage,它是所有传入消息的基本接口:
export interface IIncommingMessage {
className : IClassName;
methodName : IMethodName;
}
这个websocket可以调用各种类型的类,如下:
export type IClassName = IClassA | IClassB | IClassC
以及关联类中的各种方法
export type IMethodName = IfooinClassA | IbarinClassA | IbazinClassB | IquxinClassB | IquuxinClassB | IcorgeinClassC
看起来像这样
ClassA:
foo()
bar()
ClassB:
baz()
qux()
quux()
ClassC:
corge
这个想法是,如果一个 websocket 消息到达。它会来的
{
className : "ClassB"
methodName : "qux"
}
所以这应该调用函数 qux() 的 ClassB。
-
我采用的方法看起来很糟糕。想知道是否有更好的方法将 web-socket 消息紧密耦合到明确定义的类型
-
我也很好奇我将如何在 TypeScript 中进行此调用 - 会是 protoype.call('className.method') 吗?
【问题讨论】:
-
这些方法是静态的吗?
-
这些必须是类吗?
-
不强制进入Static就不能工作吗?
-
是的,它们是不同的类,将处理来自 websocket 连接的特定消息
标签: javascript typescript types websocket encapsulation