Pourquoi mon projet TypeScript est lent

Guide performance TypeScript : diagnostic, types complexes, project references et optimisations pour des builds rapides.

TypeScript lent : identifier et corriger les problèmes

Votre projet TypeScript commence à grossir et devient lent ? L’autocomplétion met des secondes, le build timeout, l’IDE rame. Ces problèmes ont des causes identifiables et des solutions. Chez Eve Media, nous optimisons la performance de nos projets TypeScript.

Mesurer avant d’optimiser

Utilisez tsc –generateTrace pour créer un trace analysable dans Chrome DevTools. L’option –extendedDiagnostics montre où le temps est passé. Identifiez les fichiers et types problématiques avant de changer quoi que ce soit.

Types trop complexes

Les types génériques profondément imbriqués, les unions larges, les types conditionnels complexes ralentissent la vérification. Simplifiez quand possible. Un type lisible est souvent plus performant qu’un type « clever ».

Type inference excessive

TypeScript infère les types quand vous ne les spécifiez pas. L’inférence de types complexes (grandes fonctions, chaînes de transformations) est coûteuse. Ajoutez des annotations de type explicites aux endroits critiques.

Fichiers trop gros

Un fichier de 10 000 lignes est lent à parser et à vérifier. Découpez en modules plus petits. Les changements dans un petit fichier ne recompilent que ce fichier et ses dépendants.

Import circulaires

Les imports circulaires complexifient l’analyse des types. Ils peuvent forcer TypeScript à faire plusieurs passes. Utilisez des outils comme madge pour détecter et éliminer les cycles.

node_modules

Certaines librairies ont des types lourds. Vérifiez si skipLibCheck: true améliore les performances (au prix de moins de vérification des types des librairies). Certaines librairies ont des versions de types plus légères.

Project references

Pour les monorepos, utilisez les project references TypeScript. Chaque sous-projet est compilé séparément et mis en cache. Les changements dans un projet ne recompilent pas tout.

Incremental builds

Activez incremental: true dans tsconfig. TypeScript stocke l’état de la compilation et ne recompile que ce qui a changé. Le gain est significatif sur les gros projets.

excludes appropriés

Excluez les dossiers qui ne devraient pas être analysés : node_modules (déjà exclu par défaut), dist, coverage, fichiers de test si vous avez un tsconfig séparé pour les tests.

Librairies d’i18n

Les librairies de traduction fortement typées (type-safe i18n) peuvent générer des types énormes avec beaucoup de clés. C’est un trade-off entre safety et performance. Des techniques existent pour optimiser (voir notre article dédié).

Conclusion

La lenteur TypeScript a des causes identifiables. Mesurez, identifiez les coupables, appliquez les optimisations appropriées. Un projet rapide améliore la productivité de toute l’équipe.

Chez Eve Media, nous développons des projets TypeScript performants. Contactez-nous pour vos applications.

Partager sur :

Autres

Audit Digital & SEO

Audit Digital & SEO

Audit Digital & SEO : Optimisez Votre Présence et Vos Performances Web Avoir un site internet esthétique est une première étape, mais s’assurer qu’il soit

Éco-conception de Sites Internet

Éco-conception de Sites Internet : Allier Performance Numérique et Responsabilité Écologique L’éco-conception des sites web est une démarche essentielle pour créer des plateformes numériques performantes

Envoyer un message

WhatsApp