No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Extender interfaces

14/22
Recursos

Aportes 12

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Brutal mucho mas POO!!

Por eso es mejor usar interface

Les comparto mis apuntes. 😄

¿Qué es extender interfaces?

Es básicamente la herencia como funciona en la programación orientada a objetos.

Diferencia con type

Al usar interfaces podemos aplicar herencia, pero esto no ocurre con type.

Sintaxis

interface InterfaceFather { statements }
interface InterfaceChild extends InterfaceFather { statements }

Herencia en interfaces

Así como las clases en POO, en las interfaces también podemos hacer uso de la herencia. De esta forma podemos tener una interface base que sea heredada por todas las demás interfaces en la app. Funciona de la siguiente manera

interface BaseModel {
    id: string | number;
    createdAt: Date;
    updatedAt: Date;
}

interface User extends BaseModel {
    name: string;
    lastName: string;
}

Pueden usar la crypto.randomUUID() para crear randoms id, es nativo así que no tienen que instalar nada.

const data: Product = {
  id: crypto.randomUUID(),
  title: "Camisa LaCoste",
  stock: 90,
  size: "L",
  createdAt: new Date(),
  updatedAt: new Date(),
  category: {
    id: crypto.randomUUID(),
    name: "Camisa",
    createdAt: new Date(),
    updatedAt: new Date(),
  },
};

Que poderoso. Esto lo veo mucho en el código de la empresa en la que trabajo.

Dejo un ejemplo de como extender un type.

no olvidar que podemos usar los parámetros opcionales en las inerfaces para aquellas interfaces que heredan y no necesiten fechas.

BaseModel es un modelo abstracto. Al final este modelo no tendrá una representación en la base de datos, solo servirá como estructura para definir y agrupar aquellas propiedades que se heredarán al modelo que la extiende.

No había podido entender bien este concepto cuando lo estudié en Java. Ahora si me quedó mucho más claro

Que bueno fue ver las clases de fundamentos de Bases de Datos, para entender cada una de las carpetas que crea el profe. Las veo como “Entidades” y digamos que extensiones serían como claves foraneas (o algo parecido). Se que es muy rebuscado pero me ayudo un montón.

Herencia es decir que una clase recibe de otra clase. Quiere decir que una clase X obtiene los mismos métodos y propiedades de la clase Z. Permitiendo de esta forma añadir a las características heredadas de Z las suyas propias.

El type también es extensible:

type Tipo01 = {
nom: string,
age: number
}
type Tipo02 = Tipo01 & {
fec: Date;
}
let tipo02: Tipo02 = { nom: “Pedro”, age: 24, fec: new Date() };