Surcharge du constructeur en TypeScript : comment déclarer correctement plusieurs variantes ?
Bonjour ! Je viens de commencer à apprendre TypeScript et j'ai rencontré un problème avec la surcharge du constructeur. La documentation dit que TypeScript supporte la surcharge de fonctions, mais je n'arrive pas à la faire fonctionner pour un constructeur de classe.
J'ai une classe `User` qui doit accepter différents ensembles de paramètres :
- Nom et âge (obligatoires)
- Uniquement le nom (âge par défaut 0)
- Un objet avec les champs name et age
Voici ce que j'essaie de faire :
```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 se plaint : "Type '{name: string, age: number}' is not assignable to type 'string'". Je comprends que le problème est que toutes les signatures doivent être compatibles, mais comment implémenter correctement la surcharge du constructeur ?
Peut-être existe-t-il une autre façon de faire ? Je serais reconnaissant pour une explication détaillée avec des exemples.