Aetherio Logo
Frontend

Développeur TypeScript Freelance à Lyon

Le langage qui transforme JavaScript en outil de production fiable.

Pourquoi TypeScript

J'écris tout en TypeScript. Frontend, backend, scripts, outils. Pas parce que c'est à la mode, mais parce que ça élimine des catégories entières de bugs que JavaScript laisse passer.

Un undefined is not a function en production à 3h du matin, c'est un problème que TypeScript résout à la compilation. Une propriété renommée qui casse 12 fichiers sans que personne ne le voie, TypeScript le signale immédiatement. Le typage n'est pas une contrainte, c'est un filet de sécurité.

Sur les projets que je construis, applications métier, SaaS, API, le coût d'un bug en production est élevé. TypeScript réduit ce risque drastiquement.

TypeScript vs JavaScript : les gains concrets

Détection d'erreurs à la compilation. Une propriété manquante, un type incompatible, un argument oublié. Le compilateur les détecte avant que le code ne tourne. En JavaScript, ces erreurs arrivent en production.

Refactoring en confiance. Renommer une interface, changer un type de retour, restructurer un module. Le compilateur montre chaque endroit impacté. En JavaScript, c'est un find-and-replace en espérant ne rien oublier.

Autocomplétion intelligente. L'éditeur connaît les types, les méthodes disponibles, les signatures de fonction. Le développement est plus rapide parce que l'IDE guide au lieu de deviner.

Documentation vivante. Les interfaces TypeScript décrivent les contrats entre les parties du code. Pas besoin de JSDoc ou de commentaires. Le type est la documentation.

Onboarding accéléré. Un nouveau développeur sur le projet comprend les structures de données en lisant les types. Pas besoin de tracer le code pour comprendre ce qu'une fonction attend ou retourne.

Mon approche TypeScript

Strict mode activé. strict: true dans le tsconfig.json. Pas de any implicite, pas de null non géré, pas de undefined silencieux. Le mode strict est non-négociable.

Interfaces pour les contrats publics. Props de composants, DTOs d'API, retours de composables. Tout ce qui traverse une frontière de module est typé explicitement.

Inférence partout ailleurs. TypeScript infère les types des variables locales, des retours de fonction, des computed. Je ne type pas ce que le compilateur peut déduire seul.

Zod pour la validation runtime. Les types TypeScript disparaissent au runtime. Pour les données externes (API, formulaires, webhooks), Zod valide à l'exécution ET infère les types à la compilation. Un seul schéma pour les deux.

Générics quand c'est justifié. Les generics rendent le code réutilisable sans perdre le typage. Mais un generic inutile est pire que pas de generic. Je les utilise pour les composables, les services API et les utilitaires partagés.

Ce que je construis avec TypeScript

Applications métier complexes

Le typage strict empêche des catégories entières de bugs. Sur une app avec 50+ composants et de la logique métier, TypeScript est une assurance qualité.

API backend typées

NestJS + TypeScript = des DTOs validés, des services typés, des erreurs détectées à la compilation. Le frontend sait exactement ce que l'API retourne.

SaaS multi-développeurs

Quand plusieurs développeurs travaillent sur le même projet, TypeScript sert de documentation vivante. Les interfaces décrivent les contrats entre modules.

Refactoring sans risque

Renommer une propriété, changer une signature de fonction, restructurer un module. Le compilateur détecte chaque impact. Impossible de casser quelque chose en silence.

Intégrations tierces

SDK Stripe, API Google, webhooks. Les types des librairies externes documentent exactement ce qui est attendu et ce qui est retourné.

Migration JavaScript → TypeScript

Adoption progressive sur un projet existant. Fichier par fichier, sans tout réécrire. Le mode strict augmente graduellement.

L'écosystème que j'utilise

Zod

Validation runtime + inférence de types à la compilation.

tRPC

API typées end-to-end, du backend au frontend.

ts-pattern

Pattern matching exhaustif pour la logique métier.

tsx

Exécution directe de fichiers TypeScript sans build.

Vitest

Tests unitaires natifs TypeScript, rapides et typés.

Ils m'ont fait confiance

Des fondateurs et dirigeants qui avaient un projet, un besoin, une deadline. Voici ce qu'ils en disent.

"Disponibilité, réactivité et implication. Valentin est professionnel et pédagogue."

A

Alban B.

CEO Belho Xper

"Il allie une expertise technique pointue à une solide vision business."

C

Charley A.

Co-fondateur Avnear

"La communication a toujours été fluide et les délais respectés, ce qui est rare et très appréciable."

C

Chihab A.

CEO E-commerce

"Valentin a su être à l'écoute de mes attentes et de mes besoins. Les résultats ont été plus que satisfaisants."

S

Sandrine V.

Gérante Sandrin's Nail

"Une entreprise qui sait s'adapter parfaitement au besoin client."

S

Stanislas M.

Commercial

"Depuis la mise en ligne, nous avons remarqué une nette augmentation des appels et des demandes de renseignements."

C

Christophe R.

PDG Ravi Groupe

Questions fréquentes

JavaScript n'a pas de typage. Une variable peut être un string, un number ou undefined sans que personne ne le sache. TypeScript attrape ces erreurs avant l'exécution. Sur un projet qui dure plus de 3 mois, TypeScript fait gagner plus de temps qu'il n'en coûte.

Au début, oui, légèrement. Mais ce temps est récupéré 10 fois sur le debugging, le refactoring et l'onboarding. Un bug attrapé par le compilateur coûte 0 minute. Un bug découvert en production coûte des heures.

Vue 3 est conçu pour TypeScript. La Composition API, les props typées, les emits typés, Pinia typé. L'intégration est native et l'expérience développeur est excellente.

Non. TypeScript infère la plupart des types automatiquement. Je type explicitement les interfaces publiques (props, DTOs, retours d'API) et laisse l'inférence faire le reste. L'objectif est la sécurité, pas la verbosité.

Oui, et c'est progressif. On renomme les fichiers .js en .ts un par un, on ajoute les types progressivement, et on augmente le mode strict au fur et à mesure. Pas besoin de tout réécrire.

Non. TypeScript est compilé en JavaScript standard. Les types sont supprimés à la compilation. Le bundle final est identique, le runtime est identique. Zéro impact sur la performance.

Un projet avec TypeScript ?

Premier échange gratuit, sans engagement.

Découvrez mes ressources