审查生成的 API 结果渲染器

来自 联合类型与交叉类型
TypeScript 6 高级 12分钟 找出 4处问题

在这段生成的解析与渲染代码处理生产 API 响应前,对它进行审查。

验证不可信 JSON,要求存在 label,不记录 token,保留合法的零值,并在新增联合成员却没有渲染逻辑时让编译失败。

TypeScript
type ApiResult =
  | { kind: "ok"; value: number; token: string }
  | { kind: "error"; message: string; token: string };

type Displayable = ApiResult & { label: string };

function parseResult(raw: string): Displayable {
  const parsed = JSON.parse(raw) as Displayable;
  return parsed;
}

function render(result: Displayable): string {
  console.log("result", JSON.stringify(result));

  switch (result.kind) {
    case "ok":
      if (!result.value) return `${result.label}:empty`;
      return `${result.label}:${result.value}`;
    case "error":
      return `${result.label}:${result.message}`;
    default:
      return "unknown";
  }
}

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

在试验场中打开
报告错误