Una interfaz en TypeScript es un contrato que define la estructura que debe cumplir un objeto o una clase. Esto incluye la especificación de propiedades, métodos y sus tipos. Las interfaces ayudan a mejorar la legibilidad y el mantenimiento del código al proporcionar un marco claro para los objetos que lo utilizan.
interface NombreDeLaInterfaz {
propiedad: tipo;
metodo(param: tipo): retorno;
}
Una clase o un objeto que implementa una interfaz debe cumplir con todas sus propiedades y métodos.
interface Persona {
nombre: string;
edad: number;
saludar(): void;
}
class Estudiante implements Persona {
nombre: string;
edad: number;
constructor(nombre: string, edad: number) {
this.nombre = nombre;
this.edad = edad;
}
saludar() {
console.log(`Hola, me llamo ${this.nombre} y tengo ${this.edad} años.`);
}
}
const estudiante = new Estudiante("Carlos", 22);
estudiante.saludar(); // Resultado: Hola, me llamo Carlos y tengo 22 años.
En este ejemplo, la clase Estudiante
implementa la interfaz Persona
y proporciona las propiedades y métodos definidos en la interfaz.
Puedes usar interfaces para definir la estructura de los parámetros que una función debe recibir.
interface Producto {
nombre: string;
precio: number;
}
function mostrarProducto(producto: Producto): void {
console.log(`Producto: ${producto.nombre}, Precio: $${producto.precio}`);
}
const producto = { nombre: "Laptop", precio: 1200 };
mostrarProducto(producto); // Resultado: Producto: Laptop, Precio: $1200
Puedes declarar propiedades opcionales usando el símbolo ?
.
interface Vehiculo {
marca: string;
modelo?: string; // Propiedad opcional
}
const carro: Vehiculo = { marca: "Toyota" };
console.log(carro.marca); // Resultado: Toyota
Para más información, consulta la documentación oficial de TypeScript sobre interfaces.
Jorge García
Fullstack developer