Le runtime JavaScript Node.js peut exécuter TypeScript (le langage dérivé de JavaScript à typage statique de Microsoft). À partir de la version 23.6.0, Node.js prend en charge TypeScript sans aucune configuration. TypeScript a atteint des niveaux de popularité incroyables et a été la fonctionnalité la plus demandée dans toutes les dernières enquêtes Node.js.
En août 2024, Node.js a introduit une nouvelle fonctionnalité expérimentale, Type Stripping, visant à résoudre un problème de longue date dans l’écosystème Node.js : exécuter TypeScript sans configuration. Cette fonctionnalité permet aux développeurs d’exécuter directement des fichiers TypeScript dans Node.js en supprimant les annotations de type. Activée par défaut dans la version 23.6.0 de Node.js, cette fonctionnalité est en passe de devenir stable.
TypeScript a atteint des niveaux de popularité incroyables et a été la fonctionnalité la plus demandée dans toutes les dernières enquêtes Node.js. Pour rappel, TypeScript ajoute le typage statique à JavaScript avec des annotations de type facultatives. Il est conçu pour le développement de grandes applications et se traduit en JavaScript. TypeScript peut être utilisé pour développer des applications JavaScript pour une exécution côté client et côté serveur, comme avec Node.js.
Node.js permet aux développeurs d’utiliser JavaScript pour écrire des outils de ligne de commande et des scripts côté serveur. La possibilité d’exécuter du code JavaScript sur le serveur est souvent utilisée pour générer du contenu de page Web dynamique avant que la page ne soit envoyée au navigateur Web de l’utilisateur. TypeScript sur Node.js, contrairement à d’autres alternatives comme CoffeeScript ou Flow qui n’ont jamais connu le même succès, est devenu la pierre angulaire du développement moderne.
Bien qu’il ait été pris en charge dans Node.js pendant un certain temps via des chargeurs, ceux-ci reposaient fortement sur la configuration et les bibliothèques utilisateur. Cette dépendance a conduit à des incohérences entre les différents chargeurs, ce qui rend difficile leur utilisation interchangeable. L’expérience du développeur a souffert de ces incohérences et de la configuration supplémentaire requise. L’objectif est de rendre le développement plus rapide et plus simple, en éliminant les frais de configuration tout en conservant la flexibilité attendue par les développeurs.
TypeScript n’est pas seulement un langage, il s’appuie également sur une chaîne d’outils pour implémenter ses fonctionnalités. Le principal outil à cet effet est tscle compilateur TypeScript CLI. La vérification de type est étroitement liée à la mise en œuvre de tsccar il n’existe aucune spécification formelle sur la façon dont le système de types du langage doit se comporter.
Ce manque de spécification signifie que le comportement de tsc est en fait la définition du système de types de TypeScript. tsc ne suit pas le versioning sémantique, de sorte que même des mises à jour mineures peuvent introduire des modifications dans la vérification de type qui peuvent casser le code existant.
La transpilation, en revanche, est un processus plus stable. Il consiste à convertir du code TypeScript en JavaScript en supprimant des types, en transformant certaines constructions syntaxiques et, éventuellement, «rétrograde« JavaScript pour permettre à la syntaxe moderne de s’exécuter sur des moteurs JavaScript plus anciens.
Contrairement à la vérification de type, la transpilation est moins susceptible d’être modifiée entre les versions de . La probabilité de ruptures est encore réduite lorsque l’on considère uniquement la transpilation minimale nécessaire pour rendre le code TypeScript exécutable – et excluons le déclassement de nouvelles fonctionnalités JavaScript qui ne sont pas encore disponibles dans le moteur JavaScript, mais sont disponibles dans TypeScript.
Node.js, avant de l’activer par défaut, a introduit –types de bandes expérimentales. Ce mode vous permet d’exécuter des fichiers TypeScript en supprimant simplement les types en ligne sans effectuer de vérification de type ou toute autre transformation de code. Cette technique minimale est connue sous le nom de Type de décapage. En excluant la vérification de type et la transpilation traditionnelle, les aspects les plus instables de TypeScript, Node.js réduit le risque d’instabilité et évite en grande partie la nécessité de suivre des mises à jour mineures de TypeScript.
-De plus, cette solution ne nécessite aucune configuration pour l’exécution du code. Node.js élimine le besoin de mappages de sources en remplaçant la syntaxe supprimée par des espaces, garantissant ainsi que les emplacements d’origine du code et de la structure restent intacts. C’est transparent : le code qui s’exécute est le code écrit par l’auteur, sans les types.
L’équipe Node.js commente cette annonce : «À mesure que cette fonctionnalité expérimentale évolue, l’équipe Node.js continuera à collaborer avec l’équipe TypeScript et la communauté pour affiner son comportement et réduire les frictions. Vous pouvez consulter la feuille de route pour connaître les prochaines étapes pratiques.“
Sources : Prise en charge intégrée de TypeScript sur Node.js, GitHub, tout ce que vous devez savoir sur le type Stripping de Node.js
Et toi ?
Pensez-vous que cette annonce est crédible ou pertinente ?
Quelle est votre opinion sur le sujet ?
Voir aussi :
Le top 25 des langages de programmation les plus populaires pour DevOps : TypeScript a détrôné JavaScript comme langage préféré, Ruby est en 3ème position, selon CircleCI
Microsoft annonce la disponibilité de la version stable de TypeScript 5.7, apportant des améliorations dans la vérification des variables non initialisées ainsi que dans la réécriture des chemins relatifs
Node.js 20.6 est disponible avec prise en charge des fichiers de configuration .env et intégration du garbage collector C++ « Oilpan »