Módulo 3 · Aula 3.2

Modelador de contratos

Valide dados reais antes de construir uma entidade compatível com a interface TypeScript.

Voltar para a aula

Dados de criação

Pronto para validar.

Entidade validada

id readonly
{
  "id": 1,
  "title": "Modelar contratos",
  "status": "doing",
  "priority": "planned",
  "estimate": 3
}

description? foi omitida porque o campo está vazio.

Interfaces e aliases utilizados

type TaskStatus = "todo" | "doing" | "done";
type TaskPriority = "low" | "planned" | "high" | "critical";

interface CreateTaskInput {
  title: string;
  status: TaskStatus;
  priority: TaskPriority;
  estimate: number;
  description?: string;
}

interface Task extends CreateTaskInput {
  readonly id: number;
  readonly createdAt: string;
  completedAt: string | null;
}