Avatar ·

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.`