Langage · usage courant

Agence TypeScript à Nice

JavaScript augmenté d'un système de types : une grande part des erreurs se voit à l'écriture plutôt qu'en production.

Ce que nous en faisons

TypeScript chez nos clients, concrètement

Utilisé par défaut sur tous nos développements front-end et Node récents — outil de suivi d'autoconsommation, configurateur, espace client. Ce site en est lui-même écrit.

Les limites

Quand nous recommandons autre chose

Sur un script jetable de quelques lignes, le typage ne se rentabilise pas.

Réalisations

Nos projets menés avec TypeScript

  • Paradigm

    Plateforme d'un centre d'affaires niçois : domiciliation, courrier numérisé, messagerie et assistant.

    TypeScript : Typage de toute l'interface, jusqu'au chatbot.

    Lire l'étude de cas Paradigm
  • Silversun — prospection

    Outil de prospection B2B pour les énergies renouvelables : projets géocodés et prospects enrichis.

    TypeScript : Typage de l'interface.

  • LLM Monitor

    SaaS qui mesure la visibilité des marques dans les réponses des IA.

    TypeScript : Typage des deux applications.

    Lire l'étude de cas LLM Monitor
  • Ordelya

    Plateforme de pilotage de restaurants : back-office, tablettes, bornes, écrans et site.

    TypeScript : Typage de toutes les interfaces.

  • Mejid & Co

    Application web installable de suivi des débours pour les clients de Mejid & Co.

    TypeScript : Typage de l'application et des formulaires.

    Lire l'étude de cas Mejid & Co
  • Jeu-concours Snake

    Jeu-concours rétro en six niveaux, avec quiz et inscription, pour une campagne marketing d'ordinateurs portables.

    TypeScript : Typage du jeu et de l'interface.

    Lire l'étude de cas Jeu-concours Snake
  • Angeles Immobilier

    Site multilingue d'une agence immobilière de la Côte d'Azur : annonces, recherche et blog.

    TypeScript : Typage du site et des routes d'API.

    Lire l'étude de cas Angeles Immobilier

Méthode

Comment nous intégrons TypeScript

Sur un projet neuf, TypeScript est configuré en mode strict dès le premier commit : les valeurs potentiellement vides doivent être traitées explicitement, et le compilateur refuse les types implicites. Nous définissons d'abord les objets métier (un client, une commande, une mesure de consommation) dans un dossier dédié, que l'interface et le serveur Node importent tous deux. Lorsque le back-end expose une description OpenAPI, les types sont générés à partir d'elle plutôt que recopiés à la main.

Les types ne vérifient rien à l'exécution. Aux frontières de l'application, formulaires, réponses d'API externes, fichiers importés, nous validons donc les données avec Zod, dont les schémas produisent aussi les types TypeScript : la règle n'est écrite qu'une fois. Sur une base JavaScript existante, nous activons l'option qui autorise les deux langages à coexister et convertissons fichier par fichier.

L'intégration continue lance tsc sans émission de fichiers, ESLint avec ses règles typées et les tests ; une erreur de type bloque la fusion comme un test en échec. La documentation remise précise la configuration retenue, l'emplacement des types partagés et la commande qui les régénère.

Pour votre entreprise

Ce que ça change concrètement

Vos utilisateurs ne voient pas TypeScript, mais ils en perçoivent l'effet : moins d'écrans qui affichent « undefined », moins de boutons qui ne répondent plus après une mise à jour, moins de montants mal formatés. Une partie des anomalies qui, sinon, seraient découvertes par un client est arrêtée avant même la mise en ligne.

Pour l'entreprise, le changement se situe dans la sécurité des modifications. Renommer un champ, ajouter un statut de commande ou modifier une règle de calcul devient une opération dont le compilateur liste toutes les conséquences, au lieu d'un pari sur ce qui pourrait casser. Les mises à jour se livrent donc avec moins de corrections en urgence derrière. Lorsqu'un nouveau développeur, chez vous ou chez un autre prestataire, ouvre le projet, les types lui décrivent la structure des données sans documentation séparée à tenir à jour. Pour une PME qui ne dispose pas d'une équipe de test dédiée, ce filet de sécurité automatique compte davantage que pour une grande structure.

Notre lecture

Ce que nous retenons de TypeScript

TypeScript ne s’ajoute pas à la fin d’un projet, il en fixe le vocabulaire au départ. Sa valeur n’est pas dans les types eux-mêmes mais dans ce qu’ils empêchent : un champ renommé côté serveur fait échouer la compilation avant la mise en production, au lieu d’afficher une case vide chez votre client trois semaines plus tard.

Le bénéfice se multiplie quand le même langage tient les deux bouts de la chaîne. Nos interfaces React et nos API Node.js partagent les définitions des objets métier, décrites une seule fois et importées de part et d’autre. Angular l’impose nativement, ce qui explique une partie de sa réputation de rigueur. La contrepartie est réelle : une compilation à configurer, des dépendances à typer, et un temps d’apprentissage pour une équipe habituée au JavaScript.

Grille de décision

Faut-il choisir TypeScript ?

TypeScript ou JavaScript seul pour une application que plusieurs personnes feront évoluer ?

TypeScript, sans hésiter. Dès que le code dépasse un seul auteur ou quelques semaines de vie, les types servent de documentation vérifiée : l'éditeur signale qu'une fonction attend une date et reçoit un texte, avant tout test. Une modification dans un fichier révèle immédiatement les endroits cassés ailleurs. JavaScript seul ne se justifie que pour un script jetable de quelques lignes, où déclarer les types ne se rentabilise pas.

TypeScript côté serveur avec Node.js, ou un autre langage comme PHP ou Python ?

Si l'interface est déjà en TypeScript, écrire le serveur dans le même langage permet de partager les définitions de données : la forme d'une commande ou d'un client est décrite une fois, et le front-end comme le back-end sont vérifiés contre elle. C'est ce que nous faisons sur nos développements Node récents. PHP reste pertinent si votre existant ou votre hébergement l'imposent ; Python, si le projet tourne autour de l'IA.

Faut-il convertir en TypeScript une base de code JavaScript existante ?

Oui, mais progressivement. TypeScript accepte de cohabiter avec des fichiers JavaScript : on convertit d'abord les modules les plus modifiés ou les plus sensibles, par exemple le calcul des tarifs ou la gestion des droits, puis le reste au fil des évolutions. Une conversion globale d'un bloc immobilise l'équipe sans livrer de fonctionnalité. Nous déconseillons la réécriture complète lorsque le code actuel fonctionne.

Questions de clients

Ce qu'on nous demande sur TypeScript

TypeScript rend-il le développement plus long, donc plus cher ?

L'écriture initiale demande un peu plus de rigueur, puisqu'il faut décrire la forme des données. Ce temps se récupère sur la suite : moins d'erreurs découvertes par vos utilisateurs, des modifications plus sûres et une reprise du code plus rapide par un nouveau développeur. Pour une application destinée à durer, nous le considérons comme une économie, pas comme un surcoût.

TypeScript protège-t-il notre application contre les failles de sécurité ?

Pas directement. Les types sont vérifiés pendant l'écriture, puis disparaissent : le navigateur et le serveur exécutent du JavaScript ordinaire. Une donnée envoyée par un utilisateur malveillant doit donc toujours être validée à l'exécution. TypeScript réduit en revanche les erreurs de logique qui ouvrent souvent des brèches, comme un champ oublié ou une valeur vide non prévue.

Trouverons-nous facilement des développeurs capables de maintenir du TypeScript ?

Oui. Tout développeur JavaScript peut lire du TypeScript, et la plupart des projets front-end et Node actuels l'utilisent déjà. Les types facilitent même l'arrivée d'un nouvel intervenant, qui comprend la structure des données sans avoir à interroger l'auteur d'origine. Ce site est lui-même écrit en TypeScript, comme tous nos développements front-end et Node récents.

TypeScript a-t-il un intérêt si notre back-end est en PHP ou en Python ?

Oui, côté interface. Le serveur ne partage pas le langage, mais il peut publier une description de son API au format OpenAPI, que Symfony, Laravel ou FastAPI savent produire. Nous en générons les types TypeScript : si le back-end modifie un champ, la régénération fait apparaître immédiatement les écrans concernés. Sans cette étape, l'écart entre serveur et interface ne se découvre qu'en production.

Nos bibliothèques JavaScript existantes fonctionnent-elles avec TypeScript ?

Oui. TypeScript compile vers du JavaScript et peut utiliser n'importe quelle bibliothèque JavaScript. La plupart des bibliothèques courantes fournissent déjà leurs fichiers de types, ou en disposent via un paquet communautaire. Pour un outil interne ancien qui n'en a pas, nous écrivons une déclaration limitée aux fonctions réellement appelées, ce qui suffit à retrouver la vérification sur ces usages.

Aller plus loin

TypeScript s'inscrit dans notre Développement logiciel

Une technologie ne fait pas un projet. C'est la méthode autour qui décide du résultat : cadrage, maquettes, cycles courts, et réversibilité.

Technologies voisines

Un projet TypeScript en tête ?

Le premier échange est gratuit. Nous vous dirons franchement si cette technologie est la bonne, et sinon laquelle.

Mis à jour le