Avatar ·

Sobrecarga de construtor em TypeScript: como declarar várias opções corretamente?

Olá! Comecei a estudar TypeScript recentemente e me deparei com o problema de sobrecarga de construtor. A documentação diz que TypeScript suporta sobrecarga de funções, mas não consigo fazer isso funcionar para o construtor de uma classe. Tenho uma classe `User` que deve aceitar diferentes conjuntos de parâmetros: - Nome e idade (obrigatórios) - Apenas nome (idade padrão 0) - Um objeto com campos name e age Aqui está o que estou tentando fazer: ```typescript class User { name: string; age: number; constructor(name: string, age: number); constructor(name: string); constructor(obj: {name: string, age: number}) { this.name = name; this.age = age; } } ``` TypeScript reclama: "Type '{name: string, age: number}' is not assignable to type 'string'". Entendo que o problema é que todas as assinaturas devem ser compatíveis, mas como implementar corretamente a sobrecarga de construtor? Talvez haja outra maneira de fazer isso? Agradeço uma explicação detalhada com exemplos.