Avatar ·

Sobrecarga de constructor en TypeScript: ¿cómo implementarla correctamente?

¡Hola a todos! Empecé a estudiar TypeScript y me encontré con el problema de la sobrecarga de constructor. En otros lenguajes (como Java o C#) estoy acostumbrado a que se puedan declarar varios constructores con diferentes parámetros. Pero en TypeScript esto no funciona igual. Supongamos que quiero crear una clase `User` que se pueda inicializar ya sea con un string (email) o con un objeto que tenga nombre y edad. Intenté escribir así: ```typescript class User { constructor(email: string) { // ... } constructor(name: string, age: number) { // ... } } ``` Pero TypeScript da un error: "Duplicate function implementation". Entiendo que en JavaScript no hay una sobrecarga real, pero entonces ¿cómo se hace? Necesito que la clase se pueda crear de diferentes maneras: 1. `new User("john@example.com")` — solo email 2. `new User("John", 25)` — nombre y edad 3. `new User()` — objeto vacío (valores por defecto) ¿Cómo implementar esto correctamente en TypeScript? He oído sobre union types, rest parameters