CursosEmpresasBlogLiveConfPrecios

Contenido del curso

Introducción

  • 1
    ¿Ya tomaste el Curso de TypeScript: Tipos Avanzados y Funciones?

    ¿Ya tomaste el Curso de TypeScript: Tipos Avanzados y Funciones?

    05:16 min

Fundamentos de POO

  • 2
    Class

    Class

    12:19 min
  • 3
    Métodos

    Métodos

    08:44 min
  • 4
    Acceso público

    Acceso público

    05:16 min
  • 5
    Acceso privado

    Acceso privado

    10:20 min
  • 6
    Constructor

    Constructor

    Viendo ahora
  • 7
    Getters

    Getters

    11:48 min
  • 8
    Setters

    Setters

    07:55 min

POO Avanzada

  • 9
    Herencia

    Herencia

    10:18 min
  • 10
    Acceso protegido

    Acceso protegido

    08:02 min
  • 11
    Static

    Static

    12:01 min
  • 12
    Interfaces

    Interfaces

    13:45 min
  • 13
    Clases abstractas

    Clases abstractas

    06:14 min
  • 14
    Singleton: constructor privado

    Singleton: constructor privado

    10:36 min

Asincronismo y consumo de APIs

  • 15
    Promesas

    Promesas

    14:13 min
  • 16
    Tipando respuestas HTTP

    Tipando respuestas HTTP

    11:38 min
  • 17
    Proyecto: migración de funciones a clases

    Proyecto: migración de funciones a clases

    10:05 min
  • 18
    Consumiendo ProductMemoryService

    Consumiendo ProductMemoryService

    06:30 min
  • 19
    ProductHttpService

    ProductHttpService

    15:33 min
  • 20
    Consumiendo ProductHttpService

    Consumiendo ProductHttpService

    09:22 min

Genéricos

  • 21
    Generics

    Generics

    10:22 min
  • 22
    Generics en clases

    Generics en clases

    12:08 min
  • 23
    Generics en métodos

    Generics en métodos

    15:11 min
  • 24
    Decoradores

    Decoradores

    15:05 min

Próximos pasos

  • 25
    ¿Quieres más cursos de TypeScript?

    ¿Quieres más cursos de TypeScript?

    01:20 min
Tomar examen

Constructor

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads

      Comentarios

      Irving Juárez

      Irving Juárez

      student
      hace 4 años
        Rubén Ernesto Aragón Gil

        Rubén Ernesto Aragón Gil

        student
        hace 4 años
        Milton Castañeda

        Milton Castañeda

        student
        hace 3 años
      Axel Enrique Galeed Gutierrez

      Axel Enrique Galeed Gutierrez

      student
      hace 4 años
        Ronaldo Delgado

        Ronaldo Delgado

        student
        hace 3 años
      Migdualy Alejandra Gonzalez Martinez

      Migdualy Alejandra Gonzalez Martinez

      student
      hace 4 años
        Miguel Angel Reyes Moreno

        Miguel Angel Reyes Moreno

        student
        hace 4 años
      Rodrigo Roldan

      Rodrigo Roldan

      student
      hace 4 años
        Nicolas Molina

        Nicolas Molina

        teacher
        hace 4 años
        Cayo Legal

        Cayo Legal

        student
        hace 4 años
      Brahyan Antonio Martinez Madera

      Brahyan Antonio Martinez Madera

      student
      hace 3 años
      Gilbert Ardila

      Gilbert Ardila

      student
      hace 3 años
      Miguel Angel Reyes Moreno

      Miguel Angel Reyes Moreno

      student
      hace 4 años
      Jesus Daniel Castro Flores

      Jesus Daniel Castro Flores

      student
      hace 4 años
      Andrés Felipe Eslava Zuluaga

      Andrés Felipe Eslava Zuluaga

      student
      hace 4 años
      Javier Hernando Suarez Pachon

      Javier Hernando Suarez Pachon

      student
      hace 4 meses
      •
      editado
      Alvaro Olarte

      Alvaro Olarte

      student
      hace 9 meses
      Dario Mendoza

      Dario Mendoza

      student
      hace 10 meses
      Paola Alapizco

      Paola Alapizco

      student
      hace 3 años
        Adriana Paredes Salinas

        Adriana Paredes Salinas

        student
        hace 3 años
        Cristian Ignacio Zuñiga Medina

        Cristian Ignacio Zuñiga Medina

        student
        hace 3 años
      Alfonso Neil Jiménez Casallas

      Alfonso Neil Jiménez Casallas

      student
      hace un año
      Enrique Sardon Manrique

      Enrique Sardon Manrique

      student
      hace 2 años
      Ronaldo Delgado

      Ronaldo Delgado

      student
      hace 3 años
      Diego Raciel Ortega Hernandez

      Diego Raciel Ortega Hernandez

      student
      hace 3 años

      En nuestro caso deberia ser "Bob the Constructor"

      jajajaja

      Se pasannn....jjajajja

      Les comparto mis apuntes. :D

      Constructor

      Es el constructor en el que construimos la instancia y mandamos los parámetros por defecto por el cual queremos que se inicialice esa instancia a un objeto.

      Sintaxis de las propiedades del constructor

      TypeScript nos ayuda con las clases.

      Sintaxis anterior

      class ClassName { property1: dataType; propertyN: dataType; constructor (property1: dataType, propertyN: dataType) { this.proterty1 = property1; this.protertyN = propertyN; } }

      Nueva sintaxis en TypeScript

      De esta forma estaríamos definiendo y asignando las propiedades de una manera corta.

      Cabe destacar que debemos de aclarar o ser explícitos con el alcance de las propiedades, caso contario no podremos usar esta característica de TypeScript además que no podremos usar esa propiedad a lo largo de la clase, ya que su scope solo se verá limitado al constructor.

      class ClassName { constructor ( scope property1: dataType, scope propertyN: dataType ) { statements } }

      Valores por defecto

      Al tener valores por defecto, al momento de crear una instancia de esa clase ya no es obligatorio pasar ese parámetro que tiene un valor por defecto.

      class ClassName { constructor ( scope property1: dataType = value, scope propertyN: dataType = value ) { statements } }

      Código de la clase

      type PartOfTheCalendar = 'day' | 'month'| 'year'; export class MyDate { // year: number; // private month: number; // #day: number; constructor ( public year: number = 1993, public month: number = 7, private day: number = 3 ) { // this.year = year; // this.month = month; // this.#day = day; } printFormat (): string { const { year } = this; const day = this.#addPadding(this.day); const month = this.#addPadding(this.month); return `${day}/${month}/${year}`; } add (amount: number, type: PartOfTheCalendar) { if (type === 'day') this.day += amount; if (type === 'month') this.month += amount; if (type === 'year') this. year += amount; } #addPadding (value: number) { if (value < 10) return `0${value}`; return `${value}`; } } const myDate = new MyDate(2020); const myDate2 = new MyDate(2021); console.log({myDate}); console.log(myDate.printFormat());

      Gracias por el aporte!

      En el constructor debes colocar de forma explicita el tipo de acceso si es público o privado.

      O también protegido con la palabra protected

      Buenas, cómo hago si quisiera enviar sólo el día por ejemplo? Por ejemplo algo asi y el resto dejarlo por defecto: const myDate2 = new MyDate(day:2); Me dice 'Cannot find name month'. Gracias!!

      Hola, esta es una buena pregunta porque por ejemplo así funciona Python, en este caso no tenemos esa habilidad si quisieras enviar solo el día y este está como tercer parámetro si o si te toca enviar el año y el mes, podrías enviar el año y mes en null y evaluar que cuando lleguen en null asignes algo por defecto, pero no es muy limpio.

      No se podría enviando un objeto?

      Js solo fue amor de una noche XD, con ts me caso

      para obtener la fecha actual como lo hace la api Date() pero mejorando el tema del mes cero podemos hacerlo así:

      < constructor(private year: number = new Date().getFullYear(), private month: number = new Date().getMonth() +1, private day: number = new Date().getDate(),) {}; >

      Constructor

      Podemos acortar el constructor de esta forma:

      export class MyDate { //! aquí sí es obligatorio escribir el modificador de acceso constructor( public year: number = 1998, //* valor por defecto public month: number = 1, public day: number = 1 ) {} }

      Injection dependencies en Angular esta fuertemente relacionado con esto, se usa el atajo para no escribir codigo de más.

      En TS todo debe realizarse más explícito. Y es muy bueno!

      Mas funcional con fecha actual por defecto !!

      let date = new Date(); class MyDate { constructor( private year: number = date.getFullYear(), private month: number = date.getMonth() + 1, private day: number = date.getUTCDate(), ) {} private addPading(value: number): string { return value &lt; 10 ? `0${value}` : `${value}`; } public getDateYYYYMMDD(): string { const day = this.addPading(this.day); const month = this.addPading(this.month); return `${this.year}/${month}/${day}`; } public add(amount: number, type: "days" | "month" | "years") { if (type === "days") { this.day += amount; } if (type === "month") { this.month += amount; } if (type === "years") { this.year += amount; } } //aca los retorno para que se puedan usar a nivel de logs... public getDay(): number { return this.day; } public getMonth(): number { return this.month; } public getYear(): number { return this.year; } } let myDate = new MyDate(); console.log(`()=&gt;`, myDate.getDateYYYYMMDD()); let myDate2 = new MyDate(2023); console.log(`(2023)=&gt;`, myDate2.getDateYYYYMMDD()); let myDate3 = new MyDate(2023, 10); console.log(`(2023, 10)=&gt;`, myDate3.getDateYYYYMMDD()); let myDate4 = new MyDate(2023, 10, 15); console.log(`(2023, 10, 15)=&gt;`, myDate4.getDateYYYYMMDD());

      Hay que colocar explicitamente el acceso, si no se coloca el modificador de acceso (public/private/readonly), TypeScript no automatiza la creación y asignación de la propiedad en la clase; solo recibe el parámetro, pero no lo asigna automáticamente como propiedad.

      En TypeScript, un constructor es un método especial de una clase que se invoca al crear una instancia de la clase. Su función principal es inicializar propiedades de la clase y ejecutar cualquier código necesario para preparar el objeto. Se define usando la palabra clave constructor, y puede recibir parámetros para asignar valores a las propiedades de la clase.

      Ejemplo:

      class Persona { nombre: string; constructor(nombre: string) { this.nombre = nombre; } } const persona = new Persona("Juan");

      En este ejemplo, el constructor asigna el nombre "Juan" a la propiedad nombre de la instancia persona.

      En TypeScript es posible hacer una sobrecarga el constructor así como en otros lenguajes como Java o C#? :thinking:

      Sí, en TypeScript es posible hacer sobrecarga de constructores, al igual que en otros lenguajes de programación como Java o C#. La sobrecarga de constructores nos permite definir múltiples versiones del constructor con diferentes parámetros, lo que nos brinda flexibilidad para crear instancias del objeto de diferentes formas.

      Para lograr la sobrecarga de constructores en TypeScript, debemos definir varias firmas de constructor en la clase. Cada firma de constructor debe tener una lista diferente de parámetros.

      te acaban de dar una respuesta sacada de chat gpt jajaja

      tan simpático el constructor XD

      una pregunta: esa asignación resumida, tambien funciona en javascript? porque al momento de compilarlo me salio el código completo en JS

      export class MyDate { constructor( private year: number, private month: number, private day: number ){}
      class MyDate { year; month; day; constructor(year, month, day) { this.year = year; this.month = month; this.day = day; } }

      Gracias por el video, ahora entiendo mas sobre la funcionalidad del constructor

      TS es maravilloso!