Surcharge de fonctions en TypeScript : comment déclarer et utiliser correctement ?
Bonjour à tous ! Je viens de commencer à étudier TypeScript après JavaScript et je suis tombé sur un sujet que je ne comprends pas — la surcharge de fonctions (function overloading).
En JavaScript, j'avais l'habitude d'écrire des fonctions qui peuvent accepter différents types d'arguments, et de vérifier à l'intérieur avec `typeof` ou `instanceof`. Par exemple, j'ai une fonction qui doit accepter soit une chaîne, soit un nombre, et en fonction de cela, effectuer différentes opérations. En JS, je faisais comme ça :
```typescript
function format(input) {
if (typeof input === 'string') {
return input.trim();
} else if (typeof input === 'number') {
return input.toFixed(2);
}
}
```
Mais en TypeScript, je veux décrire les types pour cette fonction. J'ai essayé d'écrire :
```typescript
function format(input: string | number): string {
// ...
}
```
Cela fonctionne, mais j'ai entendu dire qu'en TypeScript, il existe une "vraie" surcharge de fonctions, comme en C++ ou Java. J'ai essayé de faire comme ça :
```typescript
function format(input: string): string;
function