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 aulaCreateTaskInput
Dados de criação
Pronto para validar.
Task
Entidade validada
{
"id": 1,
"title": "Modelar contratos",
"status": "doing",
"priority": "planned",
"estimate": 3
}
description? foi omitida porque o campo está vazio.
Contrato estático
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;
}