Buenas practicas
TypeScript aporta valor cuando los tipos expresan intencion y no solo silencian errores.
Reglas practicas
- Evita
any. - Prefiere
unknownpara entradas no confiables. - Usa unions para estados cerrados.
- Usa
neverpara exhaustividad. - No abuses de
as. - Activa
strict.
Exhaustividad
typescript
type Status = "draft" | "published" | "archived";
function label(status: Status): string {
switch (status) {
case "draft":
return "Borrador";
case "published":
return "Publicado";
case "archived":
return "Archivado";
default: {
const exhaustive: never = status;
return exhaustive;
}
}
}Evitar as innecesario
Malo:
typescript
const user = response as User;Mejor:
typescript
const user = UserSchema.parse(response);Tipos para estados
typescript
type LoadState<T> =
| { status: "idle" }
| { status: "loading" }
| { status: "success"; data: T }
| { status: "error"; error: string };Checklist de calidad
strictactivo.- Sin
anyno justificados. - Datos externos validados.
- Estados imposibles representados como imposibles.
- Tests para funciones criticas.
typechecken CI.
Proyecto final
Crea una pequeña libreria de carrito:
- Tipos
Product,CartItem,Cart. - Funciones
addItem,removeItem,calculateTotal. - Estado con union
CartState. - Tests unitarios.
- Script
typecheck.
