Brutal mucho mas POO!!
Por eso es mejor usar interface
Introducción
¿Ya tomaste el Curso de Fundamentos de TypeScript?
Configuración del proyecto con ts-node
New Types
Enums
Tuples
Unknown type
Never type
Funciones
Parámetros opcionales y nullish-coalescing
Parámetros por defecto
Parámetros rest
Sobrecarga de funciones: el problema
Sobrecarga de funciones: la solución
Interfaces
Interfaces
Estructuras complejas
Extender interfaces
Propiedades de solo lectura
Proyecto
Ejemplo de CRUD
Omit y Pick Type
Partial y Required Type
Readonly Type
Acceder al tipado por indice
ReadonlyArray
Próximos pasos
Toma el Curso de Programación Orientada a Objetos con TypeScript
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 12
Preguntas 0
Brutal mucho mas POO!!
Por eso es mejor usar interface
Les comparto mis apuntes. 😄
Es básicamente la herencia como funciona en la programación orientada a objetos.
Al usar interfaces podemos aplicar herencia, pero esto no ocurre con type.
interface InterfaceFather { statements }
interface InterfaceChild extends InterfaceFather { statements }
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.
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() };
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.