Skip to content

第一章练习答案 ​

ts
type User = { id: string; name: string };

function isUser(value: unknown): value is User {
  if (typeof value !== 'object' || value === null) return false;
  const record = value as Record<string, unknown>;
  return typeof record.id === 'string' && typeof record.name === 'string';
}

function parseUser(text: string): User {
  const value: unknown = JSON.parse(text);
  if (!isUser(value)) throw new Error('invalid user payload');
  return value;
}

类型守卫只负责证明结构;JSON.parse 仍可能抛出语法错误,真实接口还应单独处理状态码、超时和错误响应。

用心记录每一步成长