CursosEmpresasBlogLiveConfPrecios

Enum

Clase 16 de 32 • Curso de TypeScript 3

Clase anteriorSiguiente clase

Contenido del curso

Introducción a TypeScript

  • 1
    El lenguaje de programación TypeScript

    El lenguaje de programación TypeScript

    08:43 min
  • 2
    Instalación de herramientas para TypeScript

    Instalación de herramientas para TypeScript

    05:47 min
  • 3

    Instalación de herramientas en Windows

    01:05 min
  • 4
    Navegación y refactorización

    Navegación y refactorización

    04:37 min

Entorno de Desarrollo

  • 5
    El compilador de TypeScript

    El compilador de TypeScript

    08:00 min
  • 6
    El archivo de configuración de TypeScript

    El archivo de configuración de TypeScript

    07:22 min
  • 7
    Mi primer proyecto TypeScript

    Mi primer proyecto TypeScript

    05:09 min

Tipos en TypeScript

  • 8
    Tipado en TypeScript

    Tipado en TypeScript

    01:37 min
  • 9
    Number, Boolean y String

    Number, Boolean y String

    14:09 min
  • 10
    Any

    Any

    08:28 min
  • 11
    Void y never

    Void y never

    15:58 min
  • 12
    null y undefined

    null y undefined

    11:03 min
  • 13
    Object

    Object

    07:44 min
  • 14
    Array

    Array

    09:44 min
  • 15
    Tupla

    Tupla

    11:25 min
  • 16
    Enum

    Enum

    Viendo ahora
  • 17
    Unión de Tipos, Alias y Tipos Literales

    Unión de Tipos, Alias y Tipos Literales

    11:58 min
  • 18
    Aserciones de tipo

    Aserciones de tipo

    11:26 min
  • 19
    Funciones en TypeScript

    Funciones en TypeScript

    14:19 min
  • 20
    Resumen

    Resumen

    06:54 min

Tipos Personalizados

  • 21
    Interfaces

    Interfaces

    10:18 min
  • 22
    Interfaces: propiedades opcionales

    Interfaces: propiedades opcionales

    10:57 min
  • 23
    Extensión de interfaces

    Extensión de interfaces

    10:54 min
  • 24
    Clases

    Clases

    14:02 min
  • 25
    Clases públicas y privadas

    Clases públicas y privadas

    15:10 min
  • 26
    Métodos Get y Set

    Métodos Get y Set

    08:46 min
  • 27
    Herencia de clases y propiedades estáticas

    Herencia de clases y propiedades estáticas

    17:41 min
  • 28
    Resumen

    Resumen

    13:24 min

Módulos

  • 29
    Principios de responsabilidad única

    Principios de responsabilidad única

    15:03 min
  • 30
    Resolviendo módulos

    Resolviendo módulos

    10:04 min
  • 31
    Webpack y agrupación de Módulos

    Webpack y agrupación de Módulos

    14:02 min

Cierre

  • 32
    Cierre

    Cierre

    00:57 min
Tomar examen
    Javi Felices

    Javi Felices

    student•
    hace 6 años

    Buscando algún ejemplo más sobre unir o extender en enum, he encontrado esta:

    enum DiasLaborales { Lunes = 'MON', Martes = 'TUE', Miercoles = 'WED', Jueves = 'THU', Viernes = 'FRI' } enum DiasFinSemana { Sabado = 'SAT', Domingo = 'SUN' } const Semana = { ...DiasLaborales, ...DiasFinSemana } console.log(Semana.Lunes); // MON console.log(Semana.Sabado); // SAT
      Cristian Blandon

      Cristian Blandon

      student•
      hace 5 años

      Ojo que ahí no se están extendiendo los enums en un nuevo enum... Simplemente se está creando un objeto con los pares key-value de los 2 enums.

    Pablo Verduzco

    Pablo Verduzco

    student•
    hace 6 años

    La manera de extender un enum en TypeScript es simplemente asignando nuevos valores al enum que queremos extender, es decir:

    enum Color { Red, Green, Blue } enum Color { DarkRed = 3, DarkGreen, DarkBlue }

    Tomando en cuenta que es necesario reinicializar el primer elemento del segundo enum en continuación del primero. . Esto se puede lograr ya que una vez compilado nuestro código a JavaScript un enum no deja de ser un objeto literal, es por eso que se pueden asignar nuevos valores. . Fuente: Enums are open ended - TypeScript Deep Dive Number Enums and Strings - TypeScript Deep Dive

      Moisés Manuel Morín Hevia

      Moisés Manuel Morín Hevia

      student•
      hace 5 años

      A muy bien, gracias.

      Luis Angel

      Luis Angel

      student•
      hace 4 años

      La respuesta realmente correcta es esta, muchas gracias!

    Boris Vargas Paucara

    Boris Vargas Paucara

    student•
    hace 6 años
    // Enum: permiten definir un conjunto de constantes con nombre // Orientacion para Fotografias // const landscape = 0; // const portrait = 1; // const square = 2; // const panorama = 3; enum PhotoOrientation { Landscape = 0, // podemos darle valor de manera explicita Portrait, // 1 Square, // 2 Panorama // 3 } const landscape: PhotoOrientation = PhotoOrientation.Landscape; console.log('landscape : ', landscape); // -> 0 console.log('Landscape : ', PhotoOrientation[0]); // -> Landscape enum PictureOrientation { Landscape = 10, // 10 Portrait, // 11 Square, // 12 Panorama // 13 } console.log('porttrait : ', PictureOrientation.Portrait); // -> 11 enum Country { Bolivia = 'bol', Colombia = 'col', Mexico = 'mex', EEUU = 'usa', España = 'esp' } const country: Country = Country.Colombia; console.log('country : ', country); // --> col
    David Vargas Domínguez

    David Vargas Domínguez

    student•
    hace 6 años

    Para unir o extender un enum de otro es de la siguiente manera.

    enum FirstEnum { value1 = 'value1', value2 = 'value2' } enum SecondEnum { value3 = 'value3', value4 = 'value4' } let testEnum = Object.assign({}, FirstEnum, SecondEnum); console.log(testEnum.value4) // value 4

    Así testEnum tiene los valores de los dos anteriores Enum ya que en runtime se pueden combinar estos dos objetos. En Javascript se traduciría de la siguiente forma.

    "use strict"; var FirstEnum; (function (FirstEnum) { FirstEnum["value1"] = "value1"; FirstEnum["value2"] = "value2"; })(FirstEnum || (FirstEnum = {})); var SecondEnum; (function (SecondEnum) { SecondEnum["value3"] = "value3"; SecondEnum["value4"] = "value4"; })(SecondEnum || (SecondEnum = {})); let testEnum = Object.assign({}, FirstEnum, SecondEnum); console.log(testEnum.value4); // value 4
      Isabella Susana

      Isabella Susana

      student•
      hace 5 años

      Para el uso de assign se debe cambiar la especificación a:

      "target": "es6"
    Miguel Angel Reyes Moreno

    Miguel Angel Reyes Moreno

    student•
    hace 5 años
    • Los enumerados permiten definir un conjunto de constantes con nombre
    • Tienen la ventaja de adapartse al contexto de la aplicación

    Documentación oficial de enums en TS

    //* Orientación para fotografías /* const landscape = 0 const portrait = 1 const square = 2 const panorama = 3 */ //*Una forma más inteligente de declarar constantes enum PhotoOrientation { Landscape = 'cero', //* Podemos asignar un valor en particular Portrait = 1, //* 1 Square = 2, //* 2 Panorama = 3 //* 3 } const landscape: PhotoOrientation = PhotoOrientation.Landscape const square: PhotoOrientation = PhotoOrientation.Square console.log('landscape: ', landscape) //* Accede al valor console.log('Square: ', PhotoOrientation[square]) //* Accede al nombre //*Siempre tenemos valores consecutivos que incrementan de 1 en 1 enum PictureOrientation { Landscape = 10, Portrait, //* 11 Square, //* 12 Panorama,// *13 } console.log('Portrait: ', PictureOrientation.Portrait) //* valor 11 //* Es la misma lógica que: { key, value } enum Country { Bolivia = 'BOL', Colombia = 'COL', Mexico = 'MEX', EEUU = 'USA', Espana = 'ESP' } const mexico:Country = Country.Mexico console.log('México: ', mexico) //! Country.Mexico = 'MX' //!Esto da un error, no podemos modificar su valor
    Sixto Ortega

    Sixto Ortega

    student•
    hace 5 años

    Una recomendacion es que los enums por lo general van en mayusculas, dado que son constantes.

    Carlos Javier Bazan Huaman

    Carlos Javier Bazan Huaman

    student•
    hace 5 años

    en la practica es como un objeto clave-valor.

      Luis Ricardo Legreaux Medina

      Luis Ricardo Legreaux Medina

      student•
      hace 5 años

      Estoy de acuerdo he visto esa practica de manera real asignando la misma clave al valor que lleva para dejar el codigo mas legible.

      Moisés Manuel Morín Hevia

      Moisés Manuel Morín Hevia

      student•
      hace 5 años

      Sï, un diccionario que guarda constantes.

    Jimmy Buriticá Londoño

    Jimmy Buriticá Londoño

    student•
    hace 4 años

    Los Enum nos ayudan a escribir un código más legible.

    Jorge Méndez Ortega

    Jorge Méndez Ortega

    student•
    hace 5 años

    Prácticamente esto es un Objeto que tiene como key los textos que declaramos y los indices que se autodefinen o definimos , ya que la salida de todo eso es

    { 0: "Landscape", 1: "Portrair", 2: "Square", 3: "Panorama", Landscape: 0, Panorama: 3, Portrair: 1, Square: 2, }
      Raul Hernández

      Raul Hernández

      student•
      hace 5 años

      Yo pensé lo mismo pero tiene varias ventajas como que puedes agregarle el tipado "Country" por ejemplo

      const country: Country
      Jorge Méndez Ortega

      Jorge Méndez Ortega

      student•
      hace 5 años

      entiendo lo que comentas raulmar en esencia el enum es como un objeto

    Juan David González Rodríguez

    Juan David González Rodríguez

    student•
    hace 5 años

    Para que se usa el tipo de dato Enum o a que hace refencia , me confundi un poco con este tipo de dato?

      Mauricio Galvez

      Mauricio Galvez

      student•
      hace 5 años

      Enum es un conjunto de constantes.

      Ejemplo: Enum de constantes matemáticas

      enum MathConst { Pi = 3.14, e = 2,71 }

      Básicamente es un tipo de dato que se usa para agrupar constantes que tienen una relación entre si.

      Juan David González Rodríguez

      Juan David González Rodríguez

      student•
      hace 5 años

      ooww muchas gracias jaja :D

    Jesus Daniel Castro Flores

    Jesus Daniel Castro Flores

    student•
    hace 4 años

    Todavía no me queda claro cuando usarlos, he leido pero no me termina de parece usable

      Bramucci Candela

      Bramucci Candela

      student•
      hace 4 años

      Supongo que son para casos donde necesitas limitar la cantidad de variables. Me explico. Imagina una app en la que pueden haber tres tipos de suscriptores: free, pro, pro+. Usarías un enum para definirlos. Si querés hacer validaciones no tenés que fijarte si escribiste las variables de forma correcta. Simplemente usas el enum.

      O así me lo imagino yo, soy nueva en TS pero me pareció un caso útil.

    Carlos Petit

    Carlos Petit

    student•
    hace 6 años

    Los enum en Typescript funcionan igual que en swift, si declaras:

    enum PhotoOrientation { Landscape = 2, Portrait, Square, Pano }

    Obtienes como resultado:

    { '2': 'Landscape', '3': 'Portrait', '4': 'Square', '5': 'Pano', Landscape: 2, Portrait: 3, Square: 4, Pano: 5 }

    es decir, si inicializas con un valor "custom" el primer enumerado los demas se "enumeran" a partir de ese valor que se le asigna

    Ricardo Arratia Joglar

    Ricardo Arratia Joglar

    student•
    hace 5 años

    en enum generalmente no sabemos los valores numéricos asociados, por lo tanto si queremos saber el nombre que representa, entonces lo haríamos así, sin saber el número asociado:

    console.log('Landscape',PhotoOrientacion[PhotoOrientacion.Landscape);

    Moisés Manuel Morín Hevia

    Moisés Manuel Morín Hevia

    student•
    hace 5 años

    Enum, conjunto de constantes con nombre. Es darle a una variable un nombre con un valor numérico. Con un índice se ve el estado del enumerado. Se pueden personalizar los índices asignandoles un valor.

    Luis Angel

    Luis Angel

    student•
    hace 4 años

    Si presentas el siguiente problema:

    "SyntaxError: Unexpected reserved word on typescript"

    al momento de ejecutar tu archivo type-enum.js con node, instala lo siguiente:

    npm i -g ts-node

    y para compilar tu archivo .ts y ejecutarlo a la vez solo necesitas ejecutar el comando junto con su archivo de TypeScript:

    ts-node type-enum.ts

    Ello te permitirá ejecutar directamente tu archivo .ts sin tener que llamar a node de forma manual y así evitar el error que te está apareciendo.

    Fuente:

    David Argote

    David Argote

    student•
    hace 4 años

    Solución al reto:

    // Extends Enums enum PrimaryColors { Red = 'Red', Yellow = 'Yellow', Blue = 'Blue' } enum SecondaryColors { Orange = 'Orange', Green = 'Green', Violet = 'Violet' } type AllColors = PrimaryColors | SecondaryColors; const colorRed: AllColors = PrimaryColors.Red; const colorOrange: AllColors = SecondaryColors.Orange;
    Gustavo Adolfo Perez Ramos

    Gustavo Adolfo Perez Ramos

    student•
    hace 4 años

    Enum

    • Los enumerados permiten definir un conjunto de constantes con nombre
    • Tiene la ventaja de adaptarse al contexto de la aplicación
    enum PhotoOrientation { Landscape = "Landscape", Portrait = "Portrait", Square = "Square", Panorama = "Panorama", } const landscape: PhotoOrientation = PhotoOrientation.Landscape; console.log(landscape); // console.log(PhotoOrientation[landscape]);
    Luis Angel Flores Galindo

    Luis Angel Flores Galindo

    student•
    hace 4 años

    Ejemplo típico de los meses:

    enum Months { January = 'Enero', February = 'Febrero', March = 'Marzo', April = 'Abril', May = 'Mayo', June = 'Junio', July = 'Julio', August = 'Agosto', September = 'Septiembre', October = 'Octubre', November = 'Noviembre', December = 'Diciembre' } const firstMonth: Months = Months.January; console.log('Mes:', firstMonth); console.log('Mes:', Months.December);

    Salida:

    Mes: Enero Mes: Diciembre
    Alberto Camarena

    Alberto Camarena

    student•
    hace 5 años

    Noté que cuando asignas un valor de tipo distinto a numero a los atributos de enum ya no puedes acceder a ellos con corchetes [] como lo que hizo el profesor al principio en la parte de:

    enum PhotoOrientation { Landsacape, ... } console.log(PhotoOrientation[0])

    Es decir cuando trato de hacerlo con:

    enum PhotoOrientation { Landsacape = 'Un string', ... } console.log(PhotoOrientation[0]) //Marca error de tipos

    Esto genera un error, alguien me podría explicar por qué es así por favor 🙏🏼

      Manuel Humberto Buitrago Bonilla

      Manuel Humberto Buitrago Bonilla

      student•
      hace 5 años

      Hola Alberto,

      .

      Por lo que pude entender y consultar en internet, lo que se ingresa dentro de los [ ] no son índices, sino los valores de las constantes dentro del enum y solo aplica para tipos numéricos. En el caso de PhotoOrientation, si no le asignas un valor a la LANDSACAPE (que por cierto la constante se ha de escribir en mayúscula) esta por defecto adquiere el valor de 0 y las demás constantes se incrementan en 1. Así, si la primera constante la inicias en 7, las siguientes adquieren el valor de 8, 9, 10, etc.

      .

      Entonces, al invocar PhotoOrientation[0] lo que estas haciendo es consultar dentro del enum una constante cuya asignación o valor sea 0 y esta consulta retornara el nombre de la constante.

      .

      Igualmente al invocar PhotoOrientation.LANDSACAPE la consulta retornara la asignación o valor de una constante con este nombre y que en este caso seria 0.

      Alberto Camarena

      Alberto Camarena

      student•
      hace 5 años

      Muchas gracias por la aclaración mecato :D

    Julio Cesar Estrada Marcial

    Julio Cesar Estrada Marcial

    student•
    hace 5 años

    Algo a tener en cuenta es que si no colocas un identificador o llave para los elementos del enum se pueden duplicar cuando les hagas merge.

    enum WorkDays { Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Frida = 5, } enum WeekendDays { Saturday = 6, Sunday = 7, } const Week = { ...WorkDays, ...WeekendDays } console.log(Week)

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