Las interfaces en TypeScript son una herramienta fundamental para definir la forma y estructura de un objeto. Proporcionan un mecanismo para describir la estructura de un objeto, incluyendo los nombres y tipos de sus propiedades y métodos.
-
Definición básica:
interface MyInterface { property1: type1; property2: type2; method1(param1: type1, param2: type2): returnType; }
Donde
MyInterface
es el nombre de la interfaz que estás definiendo.property1
,property2
, etc., son los nombres de las propiedades del objeto, ytype1
,type2
, etc., son los tipos correspondientes de esas propiedades.method1
es el nombre de un método en el objeto, que puede tener parámetros y un tipo de retorno.Ejemplo:
interface Person { name: string; age: number; greet(): void; } let person: Person = { name: "Alice", age: 30, greet() { console.log("Hello, I'm " + this.name); } }; person.greet(); // Output: Hello, I'm Alice
En este ejemplo, se define la interfaz
Person
con las propiedadesname
yage
, y el métodogreet
que no devuelve nada (void
). Luego, se crea un objetoperson
que cumple con la estructura definida por la interfaz. -
Herencia de interfaces: Las interfaces en TypeScript pueden heredar de otras interfaces para extender su estructura.
interface ParentInterface { property1: type1; } interface ChildInterface extends ParentInterface { property2: type2; }
Ejemplo:
interface Shape { color: string; area(): number; } interface Rectangle extends Shape { width: number; height: number; } let rect: Rectangle = { color: "red", width: 5, height: 10, area() { return this.width * this.height; } }; console.log(rect.area()); // Output: 50
Aquí, se define la interfaz
Shape
con la propiedadcolor
y el métodoarea
, y luego se define la interfazRectangle
que extiende la interfazShape
e introduce las propiedadeswidth
yheight
. El objetorect
implementa la interfazRectangle
y proporciona una implementación del métodoarea
.
Las interfaces en TypeScript son útiles para establecer contratos y garantizar que los objetos cumplan con cierta estructura. También permiten lograr una mayor reutilización de código al definir interfaces genéricas que pueden ser implementadas por diferentes objetos.
Espero que esta información te sea útil para crear tu curso sobre TypeScript y las interfaces. ¡Buena suerte con tu proyecto!