Sistema de tipos donde las variables tienen un tipo definido en tiempo de compilación.
Por ejemplo, lenguajes como Java, C o TypeScript usan tipado estático.
// TypeScript - Tipado estático let nombre: string = "Juan"; // nombre = 42; // ❌ Error: Type 'number' is not assignable to type 'string' let edad: number = 30; let activo: boolean = true; let lista: number[] = [1, 2, 3]; // Interfaces interface Usuario { id: string; nombre: string; email: string; edad?: number; // opcional } function crearUsuario(datos: Usuario): Usuario { return { ...datos }; } // El compilador detecta errores crearUsuario({ nombre: "Juan" }); // ❌ Error: Property 'id' is missing // ❌ Error: Property 'email' is missing // Tipos genéricos function primero<T>(array: T[]): T | undefined { return array[0]; } const num = primero([1, 2, 3]); // tipo: number const str = primero(["a", "b"]); // tipo: string // Ventajas del tipado estático: // ✅ Errores detectados antes de ejecutar // ✅ Mejor autocompletado // ✅ Refactoring más seguro // ✅ Documentación implícita