审查这个用于处理不可信事件 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);
}
生成代码仅作示例,不代表任何特定模型