Avatar ·

Est-il possible en TypeScript de passer des fonctions strictement typées comme paramètres ?

Bonjour à tous ! J'ai récemment commencé à apprendre TypeScript et j'ai rencontré un problème avec les fonctions d'ordre supérieur. J'ai une fonction qui prend une autre fonction en argument, et je veux que TypeScript vérifie que la fonction passée a les bons types de paramètres et de valeur de retour. Voici un exemple de ce que j'essaie de faire : ```typescript function applyOperation(x: number, y: number, operation: (a: number, b: number) => number): number { return operation(x, y); } // Cela fonctionne const sum = applyOperation(5, 3, (a, b) => a + b); // 8 // Mais que faire si je veux passer une fonction qui prend des chaînes ? const badResult = applyOperation(5, 3, (a, b) => a.toString() + b.toString()); // Pas d'erreur, mais le résultat est incorrect ``` Dans le dernier cas, TypeScript ne se plaint pas, car `a.toString() + b.toString()` renvoie une chaîne, alors qu'un nombre est attendu. Je veux que le compilateur vérifie strictement les types. J'ai aussi vu que parfois on utilise une syntaxe comme