审查生成的事件路由器

来自 高级类型
TypeScript 6 高级 6分钟 找出 3处问题

审查这个用于处理不可信事件 JSON 的生成路由器。

从一份载荷映射派生事件与处理器类型,验证传入的 JSON,并把每种受支持事件路由到处理器。

TypeScript
type EventPayloads = {
  userDeleted: { userId: string };
  creditIssued: { accountId: string; cents: number };
};

type AppEvent = {
  [Kind in keyof EventPayloads]: {
    type: Kind;
    payload: EventPayloads[Kind];
  };
}[keyof EventPayloads];

type Handlers = {
  [Kind in keyof EventPayloads]: (payload: EventPayloads[Kind]) => void;
};

function parseEvent(raw: string): AppEvent {
  return JSON.parse(raw) as AppEvent;
}

function dispatch(event: AppEvent, handlers: Partial<Handlers>): void {
  const handler = handlers[event.type] as ((payload: unknown) => void) | undefined;
  handler?.(event.payload);
}

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误