Sobrecarga de construtor em TypeScript: como implementar corretamente?
Olá a todos! Comecei a estudar TypeScript e me deparei com o problema de sobrecarga de construtor. Em outras linguagens (como Java ou C#), estou acostumado a poder declarar vários construtores com parâmetros diferentes. Mas no TypeScript isso não funciona da mesma forma.
Digamos que eu queira criar uma classe `User` que possa ser inicializada com uma string (email) ou com um objeto contendo nome e idade. Tentei escrever assim:
```typescript
class User {
constructor(email: string) {
// ...
}
constructor(name: string, age: number) {
// ...
}
}
```
Mas o TypeScript retorna um erro: "Duplicate function implementation". Eu entendo que no JavaScript não existe sobrecarga real, mas então como fazer?
Preciso que a classe possa ser criada de diferentes maneiras:
1. `new User("john@example.com")` — ou