Surcharge de fonctions en TypeScript : comment déclarer et utiliser correctement ?
Bonjour à tous ! Je viens de commencer à apprendre TypeScript et j'ai rencontré un problème en essayant d'utiliser la surcharge de fonctions. J'ai une fonction `format` qui doit fonctionner différemment selon le type des arguments passés :
1. Si une chaîne et un nombre sont passés — formater la chaîne avec répétition.
2. Si deux chaînes sont passées — les concaténer avec un séparateur.
3. Si seulement un nombre est passé — le retourner comme une chaîne avec un préfixe.
J'ai écrit ce code, mais TypeScript se plaint :
```typescript
function format(a: string, b: number): string;
function format(a: string, b: string): string;
function format(a: number): string;
function format(a: string | number, b?: string | number): string {
if (typeof a === 'number') {
return `ID: ${a}`;
}
if (typeof b === 'number') {
return a.repeat(b);
}
if (typeof b === 'string') {
return `${a} - ${b}`;
}
return a;
}
```
Erreur : `This overload signature is not compatible with its implementation signature.`
No answers yet.
Connectez-vous pour laisser une réponse
Blogs
Expressions régulières en PHP : guide complet avec exemples
API GraphQL avec JavaScript : tutoriel pas à pas pour Node.js
Mise en cache en Swift : Redis, Memcached et solutions intégrées pour iOS/macOS
WebAssembly et C# : Pourquoi en avez-vous besoin en tant que développeur moderne