From 71fa2cc44ce4a6c3bbb883872e688e36ace7c475 Mon Sep 17 00:00:00 2001 From: zekroTJA Date: Wed, 15 Jul 2026 23:14:41 +0200 Subject: [PATCH] add typescript type mapping --- 05-type-mapping/main.ts | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 05-type-mapping/main.ts diff --git a/05-type-mapping/main.ts b/05-type-mapping/main.ts new file mode 100644 index 0000000..c1ac3cd --- /dev/null +++ b/05-type-mapping/main.ts @@ -0,0 +1,34 @@ +enum OpCode { + PING, + HELLO, + MOVE, +} + +type HelloEvent = { + name: string; +}; + +type MoveEvent = { + x: number; + y: number; +}; + +type OpArgsMapping = { + [OpCode.PING]: null; + [OpCode.HELLO]: HelloEvent; + [OpCode.MOVE]: MoveEvent; +}; + +class WebSocketClient { + public op( + op: TOp, + args: TArgs, + ) { + // ... + } +} + +function main() { + const client = new WebSocketClient(); + client.op(OpCode.HELLO, { name: "foo" }); +}