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