Jolis Exemples de Code en TypeScript
Introduction
Dans cette section, je vais essayer de collecter les petites fonctions un peu magiques et les bouts de code qui servent tout le temps et qui sont soit beaux soit dûrs à retrouver donc bons à centraliser.
La fonction concatMap
C'est un problème très fréquent :
Vous avez une fonction qui renvoie soit des éléments simples soit des tableaux du même type d'éléments, et vous voulez l'appliquer à un tableau, bref appliquer Array.map
mais avec une fonction qui peut renvoyer des tableaux.
Dans ce cas, on veut en général obtenir la concaténation des tableaux retournés.
Grâce au sucre syntactique d'ES6 la fonction s'écrit en une ligne que je trouve assez élégante. Bon OK je prends 3 lignes parce que je déteste les longues lignes de code, mais c'est concis.
Le point intéressant ici, est de voir comment on la type en TypeScript.
Simple, non ?
concatMap est donc une fonction qui accepte une fonction comme seul argument (fn), et retourne une fonction qui acceptera ensuite un tableau - c'est ce qu'on appelle le currying.
C'est très pratique de mettre l'argument sur lequel on va appliquer la transformation en dernière position notamment parce que ça permet de composer facilement les fonctions. J'en reparlerai sans doute plus tard.
fm.de.jouvencel@gmail.com