Comment typer correctement une fonction de rappel dans un paramètre de méthode TypeScript ?
Bonjour à tous ! Je commence tout juste à me familiariser avec TypeScript et j'ai rencontré un problème. Dans ma classe, il y a une méthode qui accepte une fonction de rappel. Je veux typer le paramètre de manière à pouvoir passer n'importe quelle fonction (avec n'importe quel nombre d'arguments et valeur de retour), mais sans utiliser `any`, afin de préserver la vérification des types.
Voici ce que j'essaie :
```typescript
class EventBus {
on(eventName: string, callback: any) { // ça marche, mais ce n'est pas sûr
// ...
}
}
const bus = new EventBus();
bus.on('click', (data: number) => console.log(data)); // aucune erreur, même si on passe une chaîne
```
Je comprends que `any` désactive complètement la vérification des types et que c'est une mauvaise pratique. J'ai essayé d'utiliser `Function`, mais il est aussi trop large et ne permet pas de travailler correctement avec les arguments.
Dans la documentation, j'ai vu `(...args: any[]) => any`, mais cela me semble être une solution de contournement. Existe-t-il une manière plus élégante ? Comment déclarer correctement le type "n'importe quelle fonction" en TypeScript, pour que :
No answers yet.
Connectez-vous pour laisser une réponse